Can't access GridView event at usercontrol by codebehind

半腔热情 提交于 2019-12-31 07:33:53

问题


IpInterfaceUC UserControl

<div id="dvChannel" runat="server">
        <asp:GridView ID="gvChannelUC" 
            OnRowCommand="gvChannelUC_RowCommand"
            OnSelectedIndexChanged="gvChannel_SelectedIndexChanged"
        />
</div>

IPServices page CodeBehind

if (!IsPostBack){
}else
{    
 string str_btn = Request.Form.Keys[Request.Form.Keys.Count - 1].ToString();
 handleClick(str_btn);
}

Question

It always show str_btn is null.If I click Button,It'll show button's id.But when I click Select at GridView,It show str_btn is null.It should be show GridView's id when we click select.

Thanks for any explain.


回答1:


Try giving name attribute to your gridview,ie name="yourGridName".

<div id="dvChannel" runat="server" name="yourGridName">
        <asp:GridView ID="gvChannelUC" name="yourGridName"
            OnRowCommand="gvChannelUC_RowCommand"
            OnSelectedIndexChanged="gvChannel_SelectedIndexChanged"
        />
</div>



回答2:


As per my understanding you need grid event handing (.ascx) on page/codebehind (.aspx).

declare eventhandler in userControl

 public event EventHandler<EventArgs>  RaiseSelectedIndexChanged=delegate {};

handle userControl selectedindexchanged event in userControl.cs

   protected void gvChannel_SelectedIndexChanged(object sender, EventArgs e)
    {
        var raiseSelectedIndexChanged = RaiseSelectedIndexChanged ;
        if(raiseSelectedIndexChanged!=null)
        {
            raiseSelectedIndexChanged(sender, e);
        }
    }

register and use your userControl in aspx (which I hope you already did) this code will go in aspx page

        <uc:userControl OnRaiseSelectedIndexChanged="OnRaiseSelectedIndexChanged"/>

handle the event in aspx code behind

    protected void OnRaiseSelectedIndexChanged(object sender, EventArgs e)
    {
       //handle your event and put logic 
    }

I hope i make it clear , let me know if it confuses you.



来源:https://stackoverflow.com/questions/14189851/cant-access-gridview-event-at-usercontrol-by-codebehind

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!