【问题标题】:Gridview sorting and paging events are not firing in embedded .ascx controlsGridview 排序和分页事件不会在嵌入式 .ascx 控件中触发
【发布时间】:2010-11-06 02:11:45
【问题描述】:

我有一个位于 .ascx 控件内的 gridview,该控件动态嵌入到另一个 .ascx 控件中,然后由 Web 表单调用。 gridview 最初将绑定,但是当随后触发任何分页/排序/命令事件时,我无法在事件中获得任何断点来启动。此外,当我查看现在空白页面中的代码隐藏时,我看到旧数据坐在那里。

知道这里到底发生了什么吗?为了教化,摘录了带有控件的.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);

谢谢!

武神

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    如果您从 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

    【讨论】:

    • 我已经为嵌入的控件分配了一个 ID,但我没有看到行为上的差异。子 .ascx 中的所有控件都不是动态生成的,所以除了 标记的属性之外,我不确定如何分配 ID。
    • 如果有帮助,下面是我将 .ascx 控件附加到占位符控件的方法: Control ctrlAddAdj = LoadControl("AddAdjustments.ascx"); ctrlAddAdj.ID = "ucAddAdj"; phControl.Controls.Clear(); phControl.Controls.Add(ctrlAddAdj);
    • 我还尝试将 .ascx 控件直接附加到 .aspx 页面而不是父 .ascx 页面上的占位符,但我仍然看到相同的行为。
    猜你喜欢
    • 2017-06-26
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多