Hi ,
I have a parent page from which i need to open a rad window where i save/update data. On saving/closing the rad window i need the rad grid in parent to refresh . Grid does not refresh until i do a post back on the page .
Following is the code i am using ,
In Master Page :
<telerik:RadAjaxManager ID="mgr" runat="server" EnableAJAX="true" OnAjaxRequest="mgr_AjaxRequest">
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel2" runat="server" Skin="Vista"
BackgroundPosition="Center" EnableEmbeddedSkins="true" />
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
In Parent Page (.aspx)
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function refreshGrid() {
$find("<%= RadAjaxManager.GetCurrent(this).ClientID %>").ajaxRequest("Rebind");
}
</script>
In Parent Page (.cs)
protected void Page_Load(object sender, EventArgs e)
{
#region AJAX Settings
RadAjaxManager mgr = RadAjaxManager.GetCurrent(Page);
mgr.AjaxSettings.Clear();
mgr.AjaxRequest += new RadAjaxControl.AjaxRequestDelegate(mgr_AjaxRequest);
mgr.AjaxSettings.AddAjaxSetting(btnSearch, pnlContent);
mgr.AjaxSettings.AddAjaxSetting(btnSearch, rgcarrrier, (RadAjaxLoadingPanel)(this.Page.Master as MasterPage).FindControl("RadAjaxLoadingPanel2"));
mgr.AjaxSettings.AddAjaxSetting(rgcarrrier, pnlContent);
//mgr.AjaxSettings.AddAjaxSetting(RadWindowManager1, rgcarrrier);
mgr.AjaxSettings.AddAjaxSetting(btnDelete, pnlContent);
mgr.AjaxSettings.AddAjaxSetting(btnDelete, rgcarrrier, (RadAjaxLoadingPanel)(this.Page.Master as MasterPage).FindControl("RadAjaxLoadingPanel2"));
mgr.AjaxSettings.AddAjaxSetting(rgcarrrier, rgcarrrier, (RadAjaxLoadingPanel)(this.Page.Master as MasterPage).FindControl("RadAjaxLoadingPanel2"));
#endregion
}
protected void mgr_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
if (e.Argument == "Rebind")
{
rgcarrrier.MasterTableView.SortExpressions.Clear();
rgcarrrier.MasterTableView.GroupByExpressions.Clear();
rgcarrrier.Rebind();
}
}
In Rad Window (.aspx)
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function cancelAndClose() {
var oWindow = GetRadWindow();
oWindow.argument = null;
oWindow.close();
oWindow.BrowserWindow.refreshGrid();
return false;
}
</script>
In Rad Window (.cs)
protected void Page_Load(object sender, EventArgs e)
{
#region Ajax Settings
RadAjaxManager mgr = RadAjaxManager.GetCurrent(Page);
mgr.AjaxSettings.Clear();
#endregion
}
protected void btnClose_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "cancelAndClose();", true);
}
protected void btnSave_Click(object sender, EventArgs e)
{
(Page.IsValid)
{
//when save
{
ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "cancelAndClose();", true);
}
//when Update
{
ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "cancelAndClose();", true);
}
}
where did i go wrong ?
The grid does not refresh ..
I have a parent page from which i need to open a rad window where i save/update data. On saving/closing the rad window i need the rad grid in parent to refresh . Grid does not refresh until i do a post back on the page .
Following is the code i am using ,
In Master Page :
<telerik:RadAjaxManager ID="mgr" runat="server" EnableAJAX="true" OnAjaxRequest="mgr_AjaxRequest">
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel2" runat="server" Skin="Vista"
BackgroundPosition="Center" EnableEmbeddedSkins="true" />
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
In Parent Page (.aspx)
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function refreshGrid() {
$find("<%= RadAjaxManager.GetCurrent(this).ClientID %>").ajaxRequest("Rebind");
}
</script>
In Parent Page (.cs)
protected void Page_Load(object sender, EventArgs e)
{
#region AJAX Settings
RadAjaxManager mgr = RadAjaxManager.GetCurrent(Page);
mgr.AjaxSettings.Clear();
mgr.AjaxRequest += new RadAjaxControl.AjaxRequestDelegate(mgr_AjaxRequest);
mgr.AjaxSettings.AddAjaxSetting(btnSearch, pnlContent);
mgr.AjaxSettings.AddAjaxSetting(btnSearch, rgcarrrier, (RadAjaxLoadingPanel)(this.Page.Master as MasterPage).FindControl("RadAjaxLoadingPanel2"));
mgr.AjaxSettings.AddAjaxSetting(rgcarrrier, pnlContent);
//mgr.AjaxSettings.AddAjaxSetting(RadWindowManager1, rgcarrrier);
mgr.AjaxSettings.AddAjaxSetting(btnDelete, pnlContent);
mgr.AjaxSettings.AddAjaxSetting(btnDelete, rgcarrrier, (RadAjaxLoadingPanel)(this.Page.Master as MasterPage).FindControl("RadAjaxLoadingPanel2"));
mgr.AjaxSettings.AddAjaxSetting(rgcarrrier, rgcarrrier, (RadAjaxLoadingPanel)(this.Page.Master as MasterPage).FindControl("RadAjaxLoadingPanel2"));
#endregion
}
protected void mgr_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
if (e.Argument == "Rebind")
{
rgcarrrier.MasterTableView.SortExpressions.Clear();
rgcarrrier.MasterTableView.GroupByExpressions.Clear();
rgcarrrier.Rebind();
}
}
In Rad Window (.aspx)
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function cancelAndClose() {
var oWindow = GetRadWindow();
oWindow.argument = null;
oWindow.close();
oWindow.BrowserWindow.refreshGrid();
return false;
}
</script>
In Rad Window (.cs)
protected void Page_Load(object sender, EventArgs e)
{
#region Ajax Settings
RadAjaxManager mgr = RadAjaxManager.GetCurrent(Page);
mgr.AjaxSettings.Clear();
#endregion
}
protected void btnClose_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "cancelAndClose();", true);
}
protected void btnSave_Click(object sender, EventArgs e)
{
(Page.IsValid)
{
//when save
{
ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "cancelAndClose();", true);
}
//when Update
{
ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "cancelAndClose();", true);
}
}
where did i go wrong ?
The grid does not refresh ..