【问题标题】:LinkButton in DataGrid, to trigger Multiple UpdatePanelsDataGrid 中的 LinkBut​​ton,用于触发多个 UpdatePanel
【发布时间】:2011-06-02 14:57:25
【问题描述】:

我有一个列出产品及其市场份额的数据网格 - (dgProd)。该数据网格位于 DIV 中以提供滚动。

单击其中一个产品名称会显示另外两个 div/datagrid 组合 - 一个带有摘要 (dgSummary),另一个带有详细记录 (dgDetail)。

dgProd 的回发为 dgSummary 和 dgDetail 提供信息,以了解要显示的产品。但是回发会丢失 dgProd 中的位置。

我已尝试将 dgSummary 和 dgDetail 放入 UpdatePanels,但我仍然收到完整的回发。我考虑更改产品名称 LinkBut​​ton 以运行一些 javascript 而不是传统的回发,但是我看不到服务器将如何让适当的产品显示在其他 2 个网格中。

有什么建议吗?

【问题讨论】:

    标签: asp.net updatepanel postback


    【解决方案1】:

    你可以用 jQuery 做到这一点。

    创建一个包含您的产品详细信息和产品摘要的新 ASP 页面

    在新的 ASp 页面中,将 Summary Grid 加载到 id="Summary" 的 Div 中,将 Detail 加载到 id="Detail" 的 Div 中

    然后,使用 jQuery.ajax(); 调用您的新页面;打电话..

    然后,您可以使用#Summary 或#Detail 方法将每个“内容” div 加载到主页中的占位符 div...

    This 是一篇很好的文章,可以帮助您入门,并且确实演示了远程内容的部分加载..

    HTH。 戴夫

    【讨论】:

    • 我对这两个都投了赞成票,因为每个都有我最终要做的元素。
    【解决方案2】:

    您需要将每个 LinkBut​​ton 注册为 UpdatePanel 中的 AsyncPostBackTrigger。将每一项绑定到 DataGrid 中后,您需要搜索 LinkBut​​ton 并通过代码注册它,如下所示:

    private void OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {
       if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
           LinkButton lb = (LinkButton)e.Item.FindControl("myLinkButton");  
           ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(lb);
       }
    }
    

    【讨论】:

    • 我对这两个都投了赞成票,因为每个都有我最终要做的事情的元素。
    猜你喜欢
    • 2013-07-02
    • 2011-06-19
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2011-08-04
    • 2019-07-23
    相关资源
    最近更新 更多