1

我有一个MasterPageRadAjaxManager.

RadGrid我的ContentPage( Default.aspx)中有一个。我想RadGrid在关闭我的RadWindow.

我怎样才能重新绑定RadGrid

4

1 回答 1

7

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();
    }
于 2012-05-13T14:04:46.160 回答