从RadWindow重新绑定RadGrid

时间:2012-03-21 11:08:48

标签: asp.net telerik radgrid radwindow

我在我的主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;
}

2 个答案:

答案 0 :(得分:2)

试试这个:

在radWindow中,您将获得一个名为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();
}

注意:在父页面的页面上我已经为此var gridID = $find('<%=radGrid.ClientID%>')分配了gridID。您也可以直接在OnWindowClose函数中查找/获取网格,因为我的方案有点不同。

答案 1 :(得分: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);


                    }
                }

            }
        }