2014-10-20 2 views
0

В приложении ASP.NET 4.5 C# для веб-форм я бы хотел избежать обратной передачи на событие нажатия кнопки, которое извлекает данные из базы данных и связывает gridview. В gridview будет кнопка редактирования в каждой строке. Я бы хотел избежать обратной передачи, когда нажата кнопка редактирования. Там также будет кнопка на каждой строке, которая будет показывать модальное всплывающее окно при нажатии, и это всплывающее окно будет иметь кнопки. Когда модальное всплывающее окно закрывается, данные в этой строке gridview будут обновляться.Избегайте обратных передач, связанных с ASP.NET gridview

Я использую обновления. Они избегают полностраничного обновления, но не уменьшают viewstate. Сетка будет возвращать много строк. Поэтому, когда я нажимаю на любую из кнопок в gridview, потребуется некоторое время, даже если gridview перейдет в режим редактирования или всплывающее окно появится. Как я могу уменьшить или устранить эту временную задержку? Спасибо.

+1

Ваш вопрос не подходит для SO. Вы пытаетесь спросить слишком много сразу, и вы также просите нас рекомендовать программное обеспечение. Вопросы, предлагающие нам рекомендовать программное обеспечение, не допускаются. Что касается вашего основного вопроса, я бы предложил не использовать GridView или UpdatePanels для этого. Вместо этого отключите ViewState, а затем используйте ретранслятор для создания таблицы HTML. Внутри вашей таблицы используйте кнопки, которые запускают локальный JavaScript, и используйте AJAX, если вам нужно общаться с вашим сервером. – mason

+0

Спасибо, масон, я проверю. Если кто-то использовал программное обеспечение с той же целью и понравилось, я хотел бы знать. Да, это не главный вопрос. – engg

+1

Да, многие люди используют технику ретранслятора, когда они использовали более тонкий контроль над сгенерированным HTML. [Большинство людей] (http://stackoverflow.com/questions/113479/when-to-enable-disable-viewstate) (и Microsoft) теперь рекомендуют отключать ViewState и только выборочно включать его, когда вам это нужно. – mason

ответ

2

comment-

SPA (одиночные приложения страницы, которые не создавать или создавать назад) и WebForms смешать плохо.

  1. Вы не сможете воспользоваться большинством функций сторонних библиотек, которые для меня были основным преимуществом WebForms - возможность сразу получить такую ​​функциональность.
  2. Вы можете отключить обратную передачу, выбросив исключение при каждой обратной передаче. (Тест для IsPostBack)
  3. MS-Ajax является безумным. Я попытался использовать его, я пожалел об этом. Многие сторонние библиотеки WebForm привязаны к нему. Даже MS признала, что MS-Ajax является неисправным продуктом и больше не продвигает его вперед.
  4. Если вы выбрали библиотеку SPA, выберите ее, например. Угловой или JQuery или что-то еще. Когда вы помещаете оба на страницу, они сражаются за контроль над DOM.
  5. WebForms даже не является хорошим языком шаблонов. Хороший язык шаблонов делает бесполезное несчастье, когда вам нужно иметь дело с идентификаторами клиентов. В WebForms проще сгенерировать все шаблоны на одной странице и показать и скрыть детали, а не создавать разделы для генерации динамически, что имеет смысл, потому что WebForms является языком шаблонов на стороне сервера - это может сделать для огромной страницы. Вы можете использовать MS-Ajax, но он обращается к серверу, чтобы получить больше разметки шаблонов, когда этот шаг можно было пропустить, выполнив клиентскую часть шаблона.
+0

Спасибо MatthewMartin. Мне уже слишком поздно скрывать веб-формы и переключаться на MVC или что-то в этом роде. – engg

+1

@engg Все это было хорошим советом. Нет, еще не поздно перейти на MVC (или, по крайней мере, отказаться от MS-AJAX в пользу пользовательского интерфейса jQuery или аналогичного). Если вы придерживаетесь плохих технологий, это будет стоить вам в долгосрочной перспективе. Можете ли вы работать с веб-формами? Конечно. Но я обнаружил, что более эффективные методы опираются на использование MVC/[Web Pages] (http://www.asp.net/web-pages) в любом случае (например: Repeater вместо GridView, ну, вы можете как хорошо использовать петлю Razor 'foreach'). – mason

+0

Я ищу MVC. Как кривая обучения переключается с веб-форм на MVC? – engg

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