C# 更新/刷新Rad ajax面板中的控件

C# 更新/刷新Rad ajax面板中的控件,c#,asp.net,telerik,telerik-grid,C#,Asp.net,Telerik,Telerik Grid,我在更新/刷新Rad ajax面板中的控件时遇到问题 我有一个Rad ajax面板,我在其中放置了一个网格,通过将它们放在表中,RadPanelBar可以并排放置 当用户选择网格中的任何记录时,该记录的详细信息将显示在RadPanelBar旁边。所以 在选择记录的过程中,我正在刷新整个Rad ajax面板,以获得正确的所选记录详细信息 但另外,我想要的是,当用户对网格的记录进行排序时,我只需要刷新网格,为此我放置了 Radgrid再次出现在另一个Radajax面板中,这造成了问题。当我点击gri

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

我有一个Rad ajax面板,我在其中放置了一个网格,通过将它们放在表中,RadPanelBar可以并排放置

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

但另外,我想要的是,当用户对网格的记录进行排序时,我只需要刷新网格,为此我放置了 Radgrid再次出现在另一个Radajax面板中,这造成了问题。当我点击grid的链接按钮时,我的Radgrid不会随着grid的点击事件而更新 它应该突出显示单击的行。但当我把网格放在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>

我不确定这个链接按钮是什么,但从我收集的信息来看,您需要一个操作(网格上的更新)来做两件不同的事情(仅更新网格,或者同时更新面板栏)。这是一个相当混乱的场景,我不认为代码有办法知道何时只包含一个控件

这样,您只需在需要重新绑定数据时使用“<代码> ASP:UpDeaPoEnEng/<代码>在PANELBAR中使用<代码> UpDeaMyDe=条件< /代码>,并调用其<代码> UpDebug()/Cux.Server方法。这可以在需要时为您提供有条件的更新。在这种情况下,仅在网格周围放置一个面板就足够了

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

如果在客户端上知道需要更新panelbar,则可以使用JavaScript在其元素上显示RadAjaxLoadingPanel,如下所示:

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