1

を持ってMasterPageRadAjaxManagerます。

( )RadGridにがあります。を閉じた後に を再バインドしたいと思います。ContentPageDefault.aspxRadGridRadWindow

どうすれば再バインドでき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 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();
    }
于 2012-05-13T14:04:46.160 に答える