无法通过codebehind在usercontrol上访问GridView事件
IpInterfaceUC UserControl
IP服务页面CodeBehind
if (!IsPostBack){ }else { string str_btn = Request.Form.Keys[Request.Form.Keys.Count - 1].ToString(); handleClick(str_btn); }
题
它总是显示str_btn为null。如果我单击Button,它将显示按钮的id。但是当我在GridView上单击Select时,它显示str_btn为null。当我们单击select时应该显示GridView的id。
谢谢你的解释。
尝试将name
属性赋予gridview,即name="yourGridName"
。
根据我的理解,您需要在页面/代码隐藏(.aspx)上进行网格事件处理(.ascx)。
在userControl中声明eventhandler
public event EventHandler RaiseSelectedIndexChanged=delegate {};
在userControl.cs中处理userControl selectedindexchanged事件
protected void gvChannel_SelectedIndexChanged(object sender, EventArgs e) { var raiseSelectedIndexChanged = RaiseSelectedIndexChanged ; if(raiseSelectedIndexChanged!=null) { raiseSelectedIndexChanged(sender, e); } }
在aspx中注册并使用你的userControl(我希望你已经这样做了)这段代码将进入aspx页面
在aspx代码后面处理事件
protected void OnRaiseSelectedIndexChanged(object sender, EventArgs e) { //handle your event and put logic }
我希望我说清楚,如果它让你感到困惑,请告诉我。