Can't access GridView event at usercontrol by codebehind

前端 未结 2 1295
旧巷少年郎
旧巷少年郎 2021-01-26 17:06

IpInterfaceUC UserControl

相关标签:
2条回答
  • 2021-01-26 17:31

    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>
    
    0 讨论(0)
  • 2021-01-26 17:37

    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.

    0 讨论(0)
提交回复
热议问题