Перепривязать RadGrid из RadWindow - PullRequest
0 голосов
/ 21 марта 2012

У меня на главной странице aspx есть RadGrid, который позволяет пользователю открывать RadWindow при нажатии на изображение (в RadGrid).

Когда я закрываю RadWindow, мне нужно заново привязать RadGrid.Проблема в том, что я не на той же странице.Таким образом, у меня нет доступа к RadGrid на моей странице RadWindow.

Есть ли способ добавить инструкции в 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 ]

2 голосов
/ 21 марта 2012

Попробуйте это:

В 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();
}

Примечание : на pageLoad родительской страницы я назначил gridID, как это var gridID = $find('<%=radGrid.ClientID%>'). Вы также можете найти / получить сетку непосредственно в функции OnWindowClose, так как мой сценарий был немного другим.

0 голосов
/ 23 марта 2012

Вы также можете запустить команду item для конкретной строки, используя приведенный ниже код.

 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);


                    }
                }

            }
        }
...