Can't access GridView event at usercontrol by codebehind

十年热恋 提交于 2019-12-02 09:02:20

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>

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.

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