【问题标题】:Problem with grid refreshing after closing radwindow关闭 radwindow 后网格刷新问题
【发布时间】:2011-07-27 04:33:31
【问题描述】:

我在刷新 radgrid 时遇到问题,当我关闭弹出 radwindow 时,任何人都可以帮助解决问题。

我的 Gridpage aspx 代码如下所示

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest" EnableAJAX="true">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
                <telerik:AjaxSetting AjaxControlID="RadGrid1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>

<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" AllowSorting="True"
            GridLines="None" ShowGroupPanel="True" Skin="Black" AutoGenerateColumns="False" Width="100%" AllowAutomaticInserts="false" AllowAutomaticUpdates="false">
            <ClientSettings AllowDragToGroup="True" AllowColumnsReorder="True" ReorderColumnsOnClient="True">
                <Scrolling AllowScroll="True" UseStaticHeaders="True" />
                <ClientEvents OnGridCreated="OnGridCreated" />
            </ClientSettings>

.......................
..................
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true"
            Skin="Black">
            <Windows>
                <telerik:RadWindow ID="UserListDialog" runat="server" Height="620px" Width="620px"
                    Left="150px" Top="50px" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true"
                    OnClientClose="closeRadWindow" />
            </Windows>
        </telerik:RadWindowManager>

protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)
        {
            if (e.Argument == "Rebind")
            {
                RadGrid1.MasterTableView.SortExpressions.Clear();
                RadGrid1.MasterTableView.GroupByExpressions.Clear();
                Presenter List = new Presenter(this);
                IList<FileAdmin> GridDta = List.PopulateGrid();
                RadGrid1.DataSource = GridDta;
                RadGrid1.Rebind();
            }
My javascript looks like this
function closeRadWindow()
                 {
                     $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");

                }
       function refreshGrid()
                 {
                   $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");

                 }

RadWindow aspx 代码看起来像这样 javascript

function CloseAndRebind() {
                        GetRadWindow().BrowserWindow.refreshGrid();
                        //GetRadWindow().close();
                    }
function GetRadWindow()
                     {
                        var oWindow = null;
                        if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
                        else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)
                        return oWindow;
                    }

Radwindow aspx.cs 文件如下所示

protected void buttonclick(object sender, EventArgs e)
{
if (result == true)
 {
ClientScript.RegisterStartupScript(Page.GetType(), "mykey1", "CloseAndRebind();", true);
 }
} 

【问题讨论】:

  • 为澄清起见,您是否希望网格在 radwindow 关闭后随更改而更新(以便您可以看到新数据)?
  • 是的,该特定功能不起作用
  • 老实说,看起来您已经将示例 here 镜像到了发球台。是不是 result == true 传入你的代码,允许下面的代码执行?
  • 我遇到了同样的问题。我遵循链接示例,但通过调用 ajaxRequest 进行更新,Rebind() 没有发生。相反,从 Javascript 调用 rebind 解决了问题

标签: c# asp.net telerik telerik-grid radwindow


【解决方案1】:

修改 JavaScript closeRadWindow 方法,如下所述

function closeRadWindow(oWnd, eventArgs){

     var grid= $find("<%= RadGrid1.ClientID %>").get_masterTableView();
     grid.rebind();
}

【讨论】:

    【解决方案2】:

    我使用的方法与 tHARA_sOFT 使用的方法非常相似...

        function refreshGrid(arg) {
          var grid = $find("<%= grdResults.ClientID %>").get_masterTableView();
          if (!arg) { //If we have arguments, then we need to jump to the page we were on
            grid.CurrentPageIndex = grid.PageCount - 1
          }
          grid.rebind();
        }
    

    这让我将 Rebind 和 RebindAndNavigate 合二为一。所有基于 Javascript...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      相关资源
      最近更新 更多