I am trying to refresh parent grid from radwindow. Here is my code. Radiwindow opens but it doesn't close and also doesn't refresh. I am not using RadAjaxManager because RadAjaxManager is on the Master page. Please let me know what am I doing wrong?
Parent Page Code:
----------------------------------------
<script type="text/javascript">
function refreshGrid() {
var masterTable = $find("<%=RadGrid1.ClientID%>").get_masterTableView();
masterTable.rebind();
}
</script>
<telerik:RadWindowManager runat="server" ID="RadWindowManager1" OnClientClose="refreshGrid" />
<telerik:RadGrid ID="RadGrid1"
runat="server"
GridLines="None" Skin="Default" OnNeedDataSource="RadGrid1_NeedDataSource"
OnItemCommand="RadGrid1_ItemCommand" >
<MasterTableView DataKeyNames="id" PageSize="50" EditMode="EditForms">
<Columns>
<telerik:GridButtonColumn Text="View/Edit" UniqueName="EditColumn" CommandName="EditLink"></telerik:GridButtonColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
.aspx.cs code
----------------------------
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
long ID = Convert.ToInt64((e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["item_id"]));
if (e.CommandName == "EditLink")
{
RadWindow win = new RadWindow();
win.ID = "window1";
win.VisibleOnPageLoad = true;
win.NavigateUrl = "Page1.aspx?ID=" + ID.ToString();
RadWindowManager1.Controls.Add(win);
}
}
Radwindow page:(Child Window)
----------------------------------------------
<script type="text/javascript">
function CloseAndRebind() {
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;
}
</script>
.aspx page
---------------
<asp:Button ID="Save" Text="Save" runat="server" OnClick="save_Click" />
Code behind
----------------------------
protected void save_Click(object sender, EventArgs e)
{
try
{
save();
//Close Pop up
ScriptManager.RegisterStartupScript(Page, typeof(Page), "mykey", "CloseAndRebind();", true);
}
Parent Page Code:
----------------------------------------
<script type="text/javascript">
function refreshGrid() {
var masterTable = $find("<%=RadGrid1.ClientID%>").get_masterTableView();
masterTable.rebind();
}
</script>
<telerik:RadWindowManager runat="server" ID="RadWindowManager1" OnClientClose="refreshGrid" />
<telerik:RadGrid ID="RadGrid1"
runat="server"
GridLines="None" Skin="Default" OnNeedDataSource="RadGrid1_NeedDataSource"
OnItemCommand="RadGrid1_ItemCommand" >
<MasterTableView DataKeyNames="id" PageSize="50" EditMode="EditForms">
<Columns>
<telerik:GridButtonColumn Text="View/Edit" UniqueName="EditColumn" CommandName="EditLink"></telerik:GridButtonColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
.aspx.cs code
----------------------------
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
long ID = Convert.ToInt64((e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["item_id"]));
if (e.CommandName == "EditLink")
{
RadWindow win = new RadWindow();
win.ID = "window1";
win.VisibleOnPageLoad = true;
win.NavigateUrl = "Page1.aspx?ID=" + ID.ToString();
RadWindowManager1.Controls.Add(win);
}
}
Radwindow page:(Child Window)
----------------------------------------------
<script type="text/javascript">
function CloseAndRebind() {
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;
}
</script>
.aspx page
---------------
<asp:Button ID="Save" Text="Save" runat="server" OnClick="save_Click" />
Code behind
----------------------------
protected void save_Click(object sender, EventArgs e)
{
try
{
save();
//Close Pop up
ScriptManager.RegisterStartupScript(Page, typeof(Page), "mykey", "CloseAndRebind();", true);
}