Определить значение DDL для динамического создания столбца в событии oninit

StackOverflow https://stackoverflow.com/questions/827547

  •  05-07-2019
  •  | 
  •  

Вопрос

Приветствую, надеюсь, есть простое решение этой сложной проблемы. Пожалуйста, исправьте любые заблуждения, которые у меня есть по пути.  Некоторое время назад я написал GrivView с возможностью динамических столбцов. Столбцы добавляются в событие страницы OnInit, поэтому они добавляются ДО применения представления состояния. Они повторно применяются к каждой публикации в этом разделе страницы, так что при применении состояния представления сохраняются изменения, сделанные пользователем и не зафиксированные в базе данных. Это также требуется, если вы не хотите, чтобы ваше дерево управления состоянием просмотра вышло из синхронизации и взорвало все.

Моя текущая проблема заключается в том, что передо мной сейчас стоит задача по существу делать то же самое, когда столбцы будут отличаться в зависимости от выпадающего списка (я пересоздаю GridView, если ddl изменится, и пользователи потеряют всю работу с предупреждение). Как я могу получить идентификатор, выбранный в выпадающем списке в событии OnInit? Насколько я понимаю, когда пользователь изменяет значение ddl на стороне клиента, JavaScript & # 8220; __ doPostBack & # 8221; звонок уволен. Затем запрос страницы отправляется на сервер, но к тому времени, когда в обработчике событий появляется новое значение, я уже не могу добавить столбцы.

Я увидел кое-что, что, по моему мнению, было многообещающим, когда люди пытались определить, какой элемент управления вызвал обратную публикацию, но этот код опирается на page.Request.Params.Get (" __ EVENTTARGET "); и page.Request.Form, которые пусты.

Если я посмотрю на состояние сеанса, попробуйте & # 8216; отправить & # 8217; идентификатор, использующий манипуляции на стороне клиента, или какой-либо другой метод (возможно, хитрый способ посмотреть в состоянии просмотра, которое мне не хватает)?

Спасибо за любые идеи !!!

Это было полезно?

Решение

Отправленное значение элемента управления доступно из коллекции Request [], даже если кажется, что ваша форма еще не была восстановлена.

Вы должны просто иметь возможность получить выбранное значение во время Init (), используя следующее:

string value = Request["myDropDownID"];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top