我在尝试重新绑定网格时遇到此错误: (
父页面(网格所在的位置)
function refreshGrid(arg) {
if (!arg) {
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");
}
}
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true">
<Windows>
<telerik:RadWindow ID="RadWindow1" runat="server" Width="700px" Height="500px" Title="Details du ticket"
Skin="WebBlue" Behaviors="Close, Move" Modal="true">
</telerik:RadWindow>
</Windows>
</telerik:RadWindowManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" ClientIDMode="AutoID">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
.CS:
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
if (e.Argument == "Rebind")
{
RadGrid1.MasterTableView.SortExpressions.Clear();
RadGrid1.MasterTableView.GroupByExpressions.Clear();
RadGrid1.Rebind();
}
}
窗口中的JS函数(当我关闭它时,我希望刷新父页面中的网格)
function CloseDialog(args) {
GetRadWindow().close();
GetRadWindow().BrowserWindow.refreshGrid(args);
return true;
}
答案 0 :(得分:0)
尝试这个简单的例子,而不是做所有这些:
在radWindow
中,您将收到一个名为OnClientClose
的客户端事件,您可以调用它并轻松重新绑定网格。见下文我做了什么:
<telerik:RadWindow runat="server" Behaviors="Maximize,Close,Move" ID="editorWindow"
VisibleStatusbar="false" Width="800px" ReloadOnShow="true" ShowContentDuringLoad="false"
OnClientClose="OnWindowClose" Modal="true" Height="500px" />
这是JS函数:
function OnWindowClose(sender, eventArgs) {
var MasterTable = gridID.get_masterTableView();
MasterTable.rebind();
}
注意:在父网页的pageLoad
上,我已为此gridID
分配了var gridID = $find('<%=radGrid.ClientID%>')
。您也可以直接在OnWindowClose
函数中查找/获取网格,因为我的方案略有不同。