【问题标题】:updating/ refreshing the controls which are in Rad ajax panel更新/刷新 Rad ajax 面板中的控件
【发布时间】:2015-01-30 11:17:43
【问题描述】:

我在更新/刷新 Rad ajax 面板中的控件时遇到问题。

我有一个 Rad ajax 面板,我在其中放置了一个网格,并将 RadPanelBar 并排放置在表格中。

当用户选择网格中的任何记录时,该记录的详细信息将显示在 RadPanelBar 旁边。所以 在这个选择记录的过程中,我正在刷新整个 Rad ajax 面板以获取正确的选择记录详细信息。

但另外我想要的是当用户对网格的记录进行排序时,我只需要刷新网格,为此我放置了 Radgrid 再次出现在其他产生问题的 radajaxpanel 中。当我单击网格的链接按钮时,我的 Radgrid 没有使用网格的单击事件进行更新 它应该突出显示单击的行。但是当我在 Ajax 面板中放置网格时,它不会被突出显示,直到我刷新网格。 当我将它放在另一个嵌套的 rad ajax 面板中时。请帮助我如何在排序时刷新唯一的 Radgrid?

我的设计:

<telerik:RadPageView ID="radPage1" runat="server">
                    <telerik:RadAjaxPanel ID="RadAjaxPanel3" runat="server" EnableAJAX="True" LoadingPanelID="RadAjaxLoadingPanel1"
                        ClientEvents-OnRequestStart="onRequestStart">
                        <table width="100%" cellpadding="0" cellspacing="0">
                            <tr>
                                <td style="width: 50%">
                              <%-- <telerik:RadAjaxPanel ID="RadAjaxPanel4" runat="server" EnableAJAX="True" LoadingPanelID="RadAjaxLoadingPanel1"
                               ClientEvents-OnRequestStart="onRequestStart"> --%>

                                   <telerik:RadGrid ID="radGrid" runat="server" AllowSorting="true" AllowFilteringByColumn="False"
                                        OnNeedDataSource="grdUnResolvedFaxes_NeedDataSource" Skin="Metro" CellSpacing="0"
                                        GridLines="None" Width="99%" PageSize="12" OnItemCommand="grdUnResolvedFaxes_ItemCommand"
                                        EnableViewState="true">....
                                         .....
                                         .....
                                  </telerik:RadGrid>

                             <%-- </telerik:RadAjaxPanel> --%>

                                </td>

                              <td style="width: 50%">
                                 <telerik:RadPanelBar runat="server" ID="pnlBar" ExpandMode="MultipleExpandedItems"
                                        Width="99%" Visible="false">
                                 <Items>
                             .................
                                 </Items>
                                  </telerik:RadPanelBar>
                               </td>
                              </tr>
                        </table>
                 </telerik:RadAjaxPanel>

              </telerik:RadPageView>

对于网格的链接按钮,我在下面添加了代码以更新网格

  if (e.CommandName.ToLower() == "select")
     { 
                    RadAjaxPanel4.ResponseScripts.Add(String.Format("$find('{0}').ajaxRequest();", RadAjaxPanel3.ClientID));
     }

【问题讨论】:

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


    【解决方案1】:

    我不确定这个链接按钮是什么,但据我所知,您希望一个操作(网格上的更新)做两件不同的事情(仅更新网格,或者也更新面板栏)。这是一个相当令人困惑的场景,我不认为有办法让代码知道何时只包含一个控件。

    因此,您可以考虑在面板栏周围使用asp:UpdatePanelUpdateMode=Conditional,并仅在需要重新绑定其中的数据时才调用其Update() 服务器方法。这可以在需要时为您提供有条件的更新。在这种情况下,网格周围的 RadAjaxPanel 就足够了。

    嵌套 AjaxPanel 可能会导致您发现的问题,因此您应该避免这种情况。

    如果您知道客户端需要更新面板栏,您可以使用 JavaScript 在其元素上显示 RadAjaxLoadingPanel,如下所示:http://www.telerik.com/help/aspnet-ajax/ajax-show-hide-loadingpanel.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多