关闭RadWindow后如何重新绑定RadGrid

时间:2012-05-13 12:01:53

标签: telerik radgrid radwindow

我有一个MasterPage RadAjaxManager

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

如何重新绑定RadGrid

1 个答案:

答案 0 :(得分:6)

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

<telerik:RadWindow runat="server" ID="myRadWin" OnClientClose="refreshGrid" />

你可以使用这样的函数来获取你的radGrid并在客户端重新绑定它。

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

我已经使用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;
        }

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

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