0

メインの aspx ページに RadGrid があります。これにより、ユーザーは (RadGrid 内の) 画像をクリックしたときに RadWindow を開くことができます。

RadWindow を閉じたら、RadGrid を再バインドする必要があります。問題は、私が同じページにいないことです。したがって、RadWindow ページで RadGrid にアクセスできません。

CloseDialog 内に命令を追加して RadGrid を再バインドする方法はありますか?

これは、RadWindow を閉じるために使用しているコードです。

function GetRadWindow() {
    var oWindow = null;
    if (window.radWindow) oWindow = window.radWindow;
    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
    return oWindow;
}

function CloseDialog() {
    GetRadWindow().close();
    return true;
}
4

2 に答える 2

2

これを試して:

radWindow では、 という 1 つのクライアント イベントを取得OnClientCloseします。そのウィンドウを呼び出して、グリッドを簡単に再バインドできます。私がやったことを以下に見てください:

<telerik:RadWindow runat="server" Behaviors="Maximize,Close,Move" ID="editorWindow"
    VisibleStatusbar="false" Width="800px" ReloadOnShow="true" ShowContentDuringLoad="false"
    OnClientClose="OnWindowClose" Modal="true" Height="500px" />

JS 関数は次のとおりです。

function OnWindowClose(sender, eventArgs) {
    var MasterTable = gridID.get_masterTableView();
    MasterTable.rebind();
}

: 親ページの pageLoad で、このように gridID を割り当てましたvar gridID = $find('<%=radGrid.ClientID%>')OnWindowClose私のシナリオは少し異なっていたので、関数内でグリッドを直接検索/取得することもできます。

于 2012-03-21T12:58:04.393 に答える
0

以下のコードを使用して、特定の行に対して itemcommand を起動することもできます。

 function ClientClose(oWnd, args) {

            if (oWnd != null && oWnd.get_name() == "checkwindowname") {


                var grid = $find("<%=Radgrid1.ClientID %>");
                if (grid) {
                    var MasterTable = grid.get_masterTableView();
                    var Rows = MasterTable.get_dataItems();
                    for (var i = 0; i < Rows.length; i++) {
                        var row = Rows[i];

                        // put your codition here if you want

                        MasterTable.fireCommand("YourCommandName", i);


                    }
                }

            }
        }
于 2012-03-23T06:08:25.780 に答える