【问题标题】:Hierarchical Telerik RadGrids: How can I change the columns in Detail Tables?分层 Telerik RadGrids:如何更改详细信息表中的列?
【发布时间】:2011-10-13 18:21:45
【问题描述】:

我有一个 Telerik RadGrid 并生成了它的列。 RadGrid 是分层的,我有 RadWindows,我可以在其中添加/删除/修改动态列到我的网格,当 RadWindow 关闭时,RadGrid 会刷新。

我的 RadWindow:

    <telerik:RadWindow ID="RadWindow1" runat="server" KeepInScreenBounds="true" CssClass="Columns"
        Title="Manage Columns" OnClientClose="refreshGrid" EnableViewState="false"
        Width="740" Height="330">
    </telerik:RadWindow>

refreshGrid Javascript 函数:

     function refreshGrid(sender) {
            $find("<%= RadGrid1.ClientID %>").get_masterTableView().rebind();
            showScrollBars();
    }

如果我在第一级添加/修改/删除列,则此方法有效,但不适用于详细信息表。更确切地说,详细信息表在服务器端正确刷新,但在客户端没有刷新。有人知道这个问题的原因吗?

我在 Telerik 论坛上找到了一个页面,但没有帮助:

http://www.telerik.com/community/forums/aspnet-ajax/grid/details-table-not-refreshed-in-spite-of-detailtabledatabind-is-fired.aspx

感谢任何帮助/建议。

【问题讨论】:

    标签: asp.net telerik telerik-grid


    【解决方案1】:

    您是否在您的页面上使用了与 RadGrid 相关的任何形式的 Ajax?我想,正如该论坛帖子中所指出的那样,部分回发可能存在问题,不一定会根据需要更新控件。因此,如果您使用的是 RadAjaxManager,我建议您稍微过分使用哪个控件更新页面上的其他控件,然后向后退(慢慢取下项目)以查看是否得到不同的结果。或者,您也可以使用以下客户端脚本(这应该可以工作,虽然我没有在本地测试过):

       function refreshGrid(sender) {
            var myGrid = $find("<%= RadGrid1.ClientID %>");
            var myGridMasterTableView = myGrid.get_masterTableView();
            var myGridDetailTableView = myGridMasterTableView.get_detailTables()[0]; //select the first detail table
            var myGridMasterTableView.rebind();
            var myGridDetailTableView.rebind();
    }
    

    我在这里所做的只是在 MasterTableView 和它的第一个 DetailTableView 上调用 rebind。可能感觉有点难看,但它会强制刷新详细信息表 :) 对于更多客户端好东西,我建议阅读 this documentation article

    【讨论】:

    • 可以同时打开更多详细表,这意味着如果我正确理解您的答案,我必须使用for循环将它们一一重新绑定。不管怎样,谢谢你的回答,我现在试试,结果会告诉你的。
    • 不幸的是我找不到 get_detailTables 函数。我试过你的代码,get_masterTableView()返回正确的数据,但是get_masterTableView返回的对象中不存在get_detailTables()。
    • 好的,我的 DetailTables 标签在 MasterTableView 之外,所以最后我设法到达了 get_detailTables 函数,但即使我重新绑定它,我的列也是一样的,即使我删除/添加列。跨度>
    • 我不完全确定这里发生了什么,如果没有完整的示例代码,很难弄清楚。由于这似乎是一个非常奇怪且具体的案例,我建议您压缩一个显示问题的示例解决方案并将其提交给 Telerik 支持团队 - 他们应该能够在这里为您提供帮助:)
    • 谢谢你,卡尔,也许这是最好的办法。我还有其他任务,如果我只有这个,我将制作一个示例解决方案并将其发送给他们。再次感谢您为建设性的行为和合理的想法 +1。
    【解决方案2】:

    Telerik 目前不支持此功能,更多信息请访问this 页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多