关闭RadWindow后如何重新绑定RadGrid

Joh*_*com 1 telerik radgrid radwindow

我有一个MasterPageRadAjaxManager.

我有一个RadGrid在我的ContentPage(Default.aspx).RadGrid关闭我之后我想重新绑定RadWindow.

我该如何重新绑定RadGrid

Bri*_*son 7

default.aspx调用RadWindow打开时,在内容页面()上附加属性OnClientClose="refreshGrid".当窗口关闭时,将调用该函数.

<telerik:RadWindow runat="server" ID="myRadWin" OnClientClose="refreshGrid" />
Run Code Online (Sandbox Code Playgroud)

你可以使用这样的函数来获取你的radGrid并重新绑定它.

function refreshGrid() 
{        
      var masterTable = $find("<%=radGrid1.clientId%>").get_masterTableView();
      masterTable.rebind();
}
Run Code Online (Sandbox Code Playgroud)

我已经使用masterPages为你的情况添加了这个,但是留下上面因为它对任何绊倒这个问题的人都有效,因为有多种方法可以实现这一点.

在你的Rad窗口页面中包含一个JavaScript函数,你将用它来关闭你的RadWindow,它也会回调你的父页面.最优雅的方法是创建一个在MasterPage中处理的通用回调函数,其中包含一些参数,并将该函数委托给您正在处理的页面的另一个更具体的函数.我在下面描述了一种更通用的方法:

在您的RadWindow页面中:

function CloseAndRefreshGrid() {
            var oWin = GetRadWindow();
            var parentWindow = oWin.BrowserWindow;
            $(oWin).ready(function()
            {
                oWin.close();
            });
            parentWindow.refreshGrid();            
        }

 function GetRadWindow() {
            var oWindow = null;
            if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including classic dialog
            else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)

            return oWindow;
        }
Run Code Online (Sandbox Code Playgroud)

在您的内容页面中,您可以添加以下JavaScript:

 function refreshGrid() 
    {        
          var masterTable = $find("<%=radGrid1.clientId%>").get_masterTableView();
          masterTable.rebind();
    }
Run Code Online (Sandbox Code Playgroud)