2009-03-13 3 views
1

У нас есть страница, содержащая ListBox, которая отключена (в коде). Этот ListBox можно пометить, установив флажок на странице; он снова включается с помощью javascript с помощью JQuery.Asp.Net ListBox и JQuery

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

Тот же код отлично работает, если ListBox никогда не был отключен в коде.

Есть ли способ повторно включить ListBox, используя JQuery, чтобы выбранные значения были отправлены на сервер?


это .net 2.0 проект, используя VS 2005 и не .NET MVC

ответ

1

Вам нужно будет придумать решение, где ListBox всегда на стороне сервера включена и виден. Таким образом, решение jQuery для отключения select. Я бы добавил скрытое поле, сохранил ли он переключатель для включения/выключения select. Это позволит вашему jQuery-коду сообщать серверу, был ли элемент управления включен во время обратной передачи.

Вам, очевидно, придется написать код jQuery, чтобы связать скрытое поле и выбрать вместе и управлять отключенным/включенным состоянием.

Редактировать: Теперь, когда я думаю об этом. Вы можете получить значение выбора из коллекции Request.Form и присвоить значение ListBox во время Page_Init. Вы потеряете любые события ListBox.*Changed.

+0

Я подумал об этом, и у нас есть способ узнать, должно ли оно быть включено или отключено (статус флажка), но единственная проблема заключается в том, что все это также находится внутри панели обновления, поэтому ее трудно отделить от готового документа, так как это всегда переписываться. –

+0

Ahhh, боюсь, я не знаком с UpdatePanels. Но я отредактировал, чтобы добавить еще один подход –

+0

захват значения из Request.Form работал отлично. –

1

Работает для этого, возможно, для получения значения для обратной передачи через Request.Form [listbox.ClientID]. Его не так «приятно», как использование ViewState, но оно должно работать.