2009-07-30 1 views
1

Как использовать раскрывающийся список без autopostback = true.ASP.NET VS2008 C# - выпадающий список - postback

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

ответ

2

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

Вот страница Жизненный цикл:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

долларов на пончики, что это то, что происходит. Возможно, вы просто перезагрузите элементы, прежде чем перейти к обработке любого события обратной передачи, которое вы используете, чтобы получить значение. Если вы делаете это и не можете обойти этот рабочий поток, просто сохраните выбранный индекс в начале логики, которая заполняет раскрывающийся список, а затем установите выбранный индекс выпадающего значения с этим значением, когда это будет сделано.

2

он будет сохранен в viewstate, поэтому значение будет правильным, когда вы в конечном итоге опубликуете сообщение, и если вы действительно отчаянно хотите получить текущее значение без обратной передачи, javascript будет способом сделать это ,

+0

Есть ли у вас пример, как я могу осуществить это с помощью JavaScript? –

+0

http://blog.techsaints.com/2007/05/06/javascript-how-to-get-selected-item-in-dropdown-select-list/ - хороший пример, я просто отправлю код, но это обман =] –

0

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

if (!this.Page.IsPostBack) { 
    //fill select box here 
} 
1

В худшем случае вы можете получить значение сразу объекта запроса:

string selectedID = Request[DropdownControl.UniqueID];