我有一个在.ascx控件中的gridview,它动态地嵌入到另一个.ascx控件中,然后由Web表单调用。 gridview最初将绑定,但是当触发任何分页/排序/命令事件时,我无法在事件中获得任何断点。另外,当我查看现在空白页面中的代码隐藏时,我看到旧数据就在那里。
知道这里到底发生了什么吗?对于启发,带有控件的.ascx页面被摘录。
父.ascx控制:
<asp:ScriptManager ID="smIndex" runat="server" EnablePartialRendering="true" EnableScriptLocalization="true" EnableScriptGlobalization="true" />
Child .ascx控制:
<asp:UpdatePanel ID="upAddAdj" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="gvAddAdjVenList" runat="server" AllowPaging="true" AllowSorting="true" Width="100%" AutoGenerateColumns="false" Font-Size="9px" Font-Names="Verdana" PageSize="10" EnableSortingAndPagingCallbacks="false" DataKeyNames="ID" PagerSettings-Mode="NumericFirstLast" OnRowDataBound="gvAddAdjVenList_RowDataBound" Visible="true">
在child.ascx代码隐藏中:
gvAddAdjVenList.DataBind();
gvAddAdjVenList.Sorting += new GridViewSortEventHandler(gvAddAdjVenList_Sorting);
gvAddAdjVenList.PageIndexChanging += new GridViewPageEventHandler(gvAddAdjVenList_PageIndexChanging);
谢谢!
武神
答案 0 :(得分:0)
如果您将子控件“动态嵌入”C#中的另一个控件,请确保为子控件分配ID:
gvAddAdjVenList.DataBind();
gvAddAdjVenList.Sorting += new GridViewSortEventHandler(gvAddAdjVenList_Sorting);
gvAddAdjVenList.PageIndexChanging += new GridViewPageEventHandler(gvAddAdjVenList_PageIndexChanging);
gvAddAdjVenList.ID = "gvAddAdjVenList"; // Make sure you do this
parentControl.Controls.Add(gvAddAdjVenList);
确保其事件可以正确连接。
以前发现过here。