Расширение раскрывающегося списка ASP.NET

Я пытаюсь создать собственный элемент управления, наследуемый от DropDownList.

Мне нужно добавить новое свойство в ListItem (в коллекции Item).

<cc1:MyDropDownList ID="MyDropDownList1" runat="server">   
   <asp:ListItem myProperty="true" text="sometext" ... />                     

</cc1: MyDropDownList>    

Как я могу это сделать?


person markiz    schedule 17.05.2009    source источник
comment
Можете ли вы объяснить, почему вам нужно создать пользовательскую версию control3?   -  person bendewey    schedule 17.05.2009
comment
да, я сделал это в комментарии Дэвиду Роббинсу.   -  person markiz    schedule 17.05.2009


Ответы (2)


Даже если вы наследуете от DropDownList, вы не можете добавить это свойство, потому что вам нужно добавить его в элемент управления ListItem.
Но проблема в том, что класс ListItem запечатан, поэтому вы не можете наследовать от него.

person Community    schedule 17.05.2009
comment
Да, я знаю, что он опломбирован... Но что я могу сделать? Любое обходное решение? - person markiz; 17.05.2009

Можете ли вы расширить возможности клиентской части с помощью jQuery?

person David Robbins    schedule 17.05.2009
comment
Ну, я не знаком с JQuery :( - person markiz; 17.05.2009
comment
Мне нужно это свойство, чтобы сигнализировать RenderContents об отображении определенного элемента определенным образом. Конечно, я могу сделать это, передав этот флаг в свойстве Text, но это не чисто. - person markiz; 17.05.2009
comment
Не видя кода, я могу предложить ограниченное предложение по созданию структуры для хранения ваших данных - значения, описания, переменного текста - и передать это клиенту. Создайте функцию javascript, которая реагирует на щелчок, получает значение, выполняет поиск, а затем воздействует на переменный текст/флаг, который вы хотите передать. Если вам нужно отправить ответ, обновите скрытое поле с флагом и прочитайте его на сервере. - person David Robbins; 17.05.2009
comment
Переосмысление последней части моего комментария относительно скрытого поля. Постбэк, как обычно, затем ответ на SelectedItem на сервере. Опять же, это если вы ДОЛЖНЫ выполнять обратную передачу. - person David Robbins; 17.05.2009
comment
Я должен был объяснить, что я пытаюсь сделать. Я хочу расширить раскрывающийся список с возможностью отключения элемента. Под отключением я подразумеваю предотвращение его выбора и нажатия. Я планирую сделать это, добавив ‹optgroup› в переопределенный RenderContents моего нового элемента управления. Итак, я хочу, чтобы у элементов было свойство Disabled, которое я могу установить во время разработки/выполнения, а затем в RenderContents добавить тег к нужному элементу. - person markiz; 17.05.2009