2015-01-30 2 views
0

У меня возникла проблема с обновлением/обновлением элементов управления, которые находятся в панели Rad ajax.Обновление/обновление элементов управления, которые находятся в панели Rad ajax

У меня есть панель ajax Rad, в которой я разместил сетку, и RadPanelBar сбоку, разместив их в таблице.

Когда пользователь выбирает любую запись в сетке, детали этой записи будут показаны в ней рядом с RadPanelBar. Итак, в этом процессе выбора записей я обновляю панель «Полный альянс» для получения правильной выбранной записи.

Но кроме того, что я хочу, когда пользователь сортирует записи сетки, мне нужно обновить только сетку, для этого я положил Radgrid снова в другой radajaxpanel, который создает проблемы. Мой Radgrid не обновляется с событиями щелчка сетки, когда я нажимаю кнопку ссылки в сетке , она должна выделять щелкнув строку. Но когда я разместил сетку в панели Ajax, она не будет подсвечиваться до тех пор, пока я не разберусь с обновлением сетки. , когда я поместил его в другую вложенную панель 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> 

Для LinkButton щелчком сетки я добавил ниже код, чтобы обновить сетку

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

ответ

0

Я не уверен, что это LinkButton есть, но от того, что я могу собирайте, вы хотите, чтобы одно действие (обновление в сетке) выполняло две разные вещи (обновляйте только сетку или обновляйте панель панели). Это довольно запутанный сценарий, и я не уверен, что код может знать, когда включать только один элемент управления.

Таким образом, вы можете использовать asp:UpdatePanel с помощью панели UpdateMode=Conditional вокруг панели панели и вызвать свой серверный метод Update() только тогда, когда вам нужно переустановить данные. Это может дать вам условное обновление там, когда это необходимо. В этом случае достаточно RadAjaxPanel вокруг сетки.

Вложение AjaxPanels может привести к проблемам, которые вы обнаружили, поэтому вам следует избегать этого.

Если вы знаете на клиенте, что вам нужно обновить панель панели, вы можете показать RadAjaxLoadingPanel над своим элементом с помощью JavaScript, как показано ниже: http://www.telerik.com/help/aspnet-ajax/ajax-show-hide-loadingpanel.html.

Смежные вопросы