Включение ViewStateMode не работает для дочерних элементов управления дочернего элемента управления - PullRequest
0 голосов
/ 10 декабря 2011

Я работаю над приложением .net 4.0. Я пытаюсь загрузить несколько пользовательских элементов управления, которые имеют элемент управления gridview, а также несколько текстовых полей и выпадающих списков. Поскольку viewstate действительно замедляет работу системы, чтобы повысить производительность, я отключил ViewStateMode родительского элемента управления (то есть пользовательский элемент управления) и включил ViewStateMode для выпадающих списков. Но проблема, которую я имею, состоит в том, что выпадающие списки внутри сетки и панели выдают ошибку, даже если их ViewStateMode включен. Если я включаю ViewStateMode для gridView или Panel, он работает нормально, но это увеличивает размер Viewstate. Может кто-нибудь, пожалуйста, дайте мне понять, почему это происходит, и как это можно решить?

Спасибо BB

1 Ответ

1 голос
/ 10 декабря 2011

Если вы получаете тонны состояния просмотра. Тогда я бы предложил вам два способа, которые также сработали для меня

  1. Сжатие Viewstate - http://www.codeproject.com/KB/viewstate/ViewStateCompression.aspx, http://www.hanselman.com/blog/ZippingCompressingViewStateInASPNET.aspx

  2. Трассировка макета области рендеринга в формате html с использованием div, ul, li wahtever.Теперь вместо размещения сеток и других серверных элементов управления получите источник данных (datatable или dataset), переберите элементы, добавьте html в codebehind и напишите окончательный HTML-тег на странице, используя литерал.используя элементы управления html, вы можете избавиться от проблем с состоянием просмотра.Также к этому HTML-тегу вы можете применить jquery, чтобы сделать его еще лучше.

...