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