【问题标题】:i want to reload the page on aspxgridview rowupdating event我想在 aspxgridview rowupdating 事件上重新加载页面
【发布时间】:2011-11-30 21:12:54
【问题描述】:

我在 asp.net 中使用 Devexpress aspxgridview 控件。我想在 aspxgridview_row 更新事件上重新加载页面。

我试过 response.redirect("");但它显示 /Response.Redirect 不能在 Page 回调中调用。/

那么,在 rowupdating 事件中重新加载页面的正确方法是什么。

注意: 我在gridview中使用gridview(mastergrid和mastergrid的detailrow中的gridview)。现在我想在 detailgridview 的 row_updating 事件上重新加载页面。

【问题讨论】:

    标签: asp.net devexpress aspxgridview


    【解决方案1】:

    如果 ASPxGridView ASPxGridView.EnableCallBacks 属性设置为true 则不能使用Response.Redirect.

    使用ASPxWebControl.RedirectOnCallback方法将页面重定向到另一个Url同时处理callback

    ASPxWebControl.RedirectOnCallback("url");
    

    【讨论】:

      【解决方案2】:

      如果你想重新加载完整的页面,你可以像这样设置 ClientSideEvents.EndCallback 处理程序:

      protected void Grid_RowUpdatingEvent(object sender, ASPxDataUpdatingEventArgs e) 
      {
          ASPxGridView grid = (ASPxGridView)sender;
          grid.JSProperties["cp_RefreshPage"] = true;
      
          grid.ClientSideEvents.EndCallback = 
              @"function(s,e)
              {
                  if(s.cp_RefreshPage!=null)
                  {
                      window.location.replace(window.location.href);
                      s.cp_RefreshPage=null;
                  }
              };";
      }
      

      如果您需要刷新两个网格而不是整个页面,最好使用 gridClientInstanceName.Refresh() 而不是 location.replace。 http://documentation.devexpress.com/#AspNet/DevExpressWebASPxGridViewScriptsASPxClientGridView_Refreshtopic

      或者,您可以使用此票证中描述的解决方案:http://www.devexpress.com/Support/Center/p/S134916.aspx

      【讨论】:

      • 您可能在页面中定义了事件处理程序。我更改了答案以适应您的需求。尝试更新代码。
      猜你喜欢
      • 1970-01-01
      • 2017-08-11
      • 2015-02-26
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      相关资源
      最近更新 更多