我有一个MasterPage
RadAjaxManager
。
我的RadGrid
(ContentPage
)中有一个Default.aspx
。
我想在关闭RadGrid
之后重新绑定RadWindow
。
如何重新绑定RadGrid
?
答案 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();
}