2013-12-22 1 views
0

Еще один вид сетки в файлах подкачки/сортировке по обновлению.Gridview внутри UpdatePanel, пейджинг/сортировка не работает ТОЛЬКО при использовании MasterPage

Gridview выглядит следующим образом:

<asp:UpdatePanel runat="server" 
ID="upGdvPendingReview" 
ChildrenAsTriggers="true" 
UpdateMode="Conditional"> 
    <ContentTemplate> 
    <asp:GridView 
      ID="gdvPendingReview" 
      runat="server"                
      PageSize="10" 
      AllowPaging="true" 
      AllowSorting="true" 
      > 
      <columnCrudHere>            
    </asp:GridView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Gridview связан с LinqDataSource с помощью события Selecting. Этот код отлично работает без обновления. Он также отлично работает, если я копирую страницу, которая не является страницей содержимого на главную страницу. Я прочитал много сообщений о проблемах gridview в панелях обновления с разбиением на страницы и сортировкой. Фактически, есть тот, где они комментируют в конце концов, что он заработал, но он все еще терпит неудачу при использовании MasterPage. Я попытался использовать scriptmanager на той же странице, что и gridview, и меняя различные параметры scriptmanager. Чтобы заставить его работать, я просто создаю новую страницу, копирую свой gridview, linqdatasource, scriptmanager и код за ... и бум работает. Меня заставляет задуматься, есть ли у меня что-то еще на странице. У меня есть другие обновления, где я могу обновить контент в порядке. Итак, это ... в сочетании с сообщением, в котором упоминается одна и та же проблема, я озадачен.

Я также попытался явно перечисляя событие:

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="gdvPendingReview" EventName="PageIndexChanging" /> 
</Triggers> 

Вот пост, где кажется, что у кого-то такая же проблема (в самом конце): GridView PAGING inside UpdatePanel does not work for second page change, why?

** * Обновление

Поскольку я продолжаю проверять это, он становится более неприятным и увлекательным. Я создал две новые страницы, содержащие только методы gridview, linqdatasource, scriptmanager и databinding. На одной странице нет мастера ... на другой странице есть мастер (но совершенно новый и чистый, чтобы избежать любых возможных помех). Те же результаты! Пейджинг/Сортировка работает отлично асинхронно, если я не имею в виду главную страницу. :(

*** Обновление

Я должен признать, что я лжец. Тестовая страница Я настроил (с Учителем) имел некоторый код, оставшийся от предыдущего теста. На самом деле, когда я комментирую этот код, мой пейджинг GridView работает внутри UpdatePanel при использовании MasterPage. Ответчик «Ответ.Write». Когда я переключаю это, я могу создать проблему по требованию. Большой урок «Отремонтированный» здесь о тестировании и но все же есть какая-то загадка.

Интересно, что у меня нет ответа. Что-то я могу найти в своем коде для исходной страницы с проблемой. Кто-нибудь задумывается о том, почему «Response.Write» нарушит e gridview sorting/paging в панели обновления? Если это так, это может помочь определить, что происходит.

Спасибо всем!

+0

Вы пытались установить UpdateMode на «Always»? –

+0

Да, сэр .... работает в обоих направлениях, когда не на странице с мастером. Ничего не работает. Кроме того, «не работает», я должен уточнить, что ничего не происходит, когда я нажимаю заголовок столбца или страницу, на которую нужно перейти. – Matt

ответ

0

Ну, ответ на этот вопрос немного неловко.

Занятие 1 - Когда вы проверяете, вы изолируете свою проблему как можно полнее и не принимаете ничего.

Урок 2 - При устранении проблем, связанных с AJAX, ищите ошибки JavaScript.

Оказывается, мой код работает нормально. Проблема заключалась в других обновлениях на странице, установленной для обновления «всегда». Я заметил ошибку javascript в Firebug, предупреждающую меня о том, что обновленную панель не удалось найти при попытке сортировки/страницы gridview, с которой у меня возникли проблемы. Когда я пытаюсь создать страницу gridview, любая обновленная панель всегда будет обновляться.Ну, есть «скрытый» раздел моей страницы (видимость отключена) с обновленными полями. При попытке сортировки/отображения моего gridview, javascript ищет их, я предполагаю, что обновляю их, но не могу их найти. Существует ошибка javascript, и весь прогресс останавливается. Решение заключалось в том, чтобы изменить обновляемые поля, которые спрятаны до условного (что имеет другие последствия, но его терпимость).

По умолчанию это похоже на правильное поведение. Если панель обновления находится внутри другого элемента управления, видимость которого отключена, следует ли его обновлять?

Спасибо всем.

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

  • Нет связанных вопросов^_^