を持ってMasterPage
いRadAjaxManager
ます。
( )RadGrid
にがあります。を閉じた後に を再バインドしたいと思います。ContentPage
Default.aspx
RadGrid
RadWindow
どうすれば再バインドできRadGrid
ますか?
コンテンツページ(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 Windowページには、RadWindowを閉じるために使用するJavaScript関数を含めます。これにより、親ページへのコールバックも行われます。最も洗練されたアプローチは、いくつかの引数を含む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();
}