我有一个Telerik RadGrid,它的列已生成。 RadGrid是分层的,我有RadWindows,我可以在其中添加/删除/修改dinamically列到我的网格,并在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论坛上找到了一个页面,但它没有帮助:
感谢任何帮助/建议。
答案 0 :(得分:0)
您是否在与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。
答案 1 :(得分:0)
此刻Telerik不支持此功能,有关详细信息,请转至this页。