1
我有一个.ascx控件内的gridview,它被动态地嵌入到另一个.ascx控件中,然后由一个web窗体调用。 GridView最初会绑定,但是当触发任何分页/排序/命令事件时,我无法在事件内部获得任何断点来启动。另外,当我查看现在空白页面中的代码隐藏时,我看到旧数据在那里。Gridview排序和分页事件没有在嵌入式.ascx控件中触发
有什么想法到底是怎么回事?为了启发,摘录了带有控件的.ascx页面。
父的.ascx控制:
<asp:ScriptManager ID="smIndex" runat="server" EnablePartialRendering="true" EnableScriptLocalization="true" EnableScriptGlobalization="true" />
儿童的.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);
谢谢!
武神
我已经为嵌入的控件分配了ID,但我没有看到行为上的差异。动态生成子.ascx内的控件都不是动态生成的,所以我不知道如何分配一个ID,而不是在标记的属性中。 –
Valkyrie
2010-11-08 13:37:39
如果有帮助,以下是我如何将.ascx控件附加到占位符控件:Control ctrlAddAdj = LoadControl(“AddAdjustments.ascx”); ctrlAddAdj.ID =“ucAddAdj”; phControl.Controls.Clear(); phControl.Controls.Add(ctrlAddAdj); – Valkyrie 2010-11-08 13:53:04
我也尝试将.ascx控件直接附加到.aspx页面上的占位符,而不是父级.ascx页面,我仍然看到相同的行为。 – Valkyrie 2010-11-08 13:54:35