раскрывающийся список asp.net, встроенный в список, не предоставляющий выбранное значение для обновления параметра - PullRequest
2 голосов
/ 21 сентября 2011

У меня есть страница asp.net со списком, который привязан к источнику SQLDataSource. Встроенный в шаблоны редактирования и вставки у меня есть dropDownList, который связан со вторым источником SQLDataSource. В параметрах обновления я указал соответствующий параметр для использования выбранного значения DropDownList (по крайней мере, я так думаю). К сожалению, выбранное значение не попадает в обновление. Если я пытаюсь обратиться к элементу управления dropdowlist в явном виде и попытаться выполнить обновление или вставку, среда выполнения жалуется, что слишком много параметров передано в хранимую процедуру, используемую для обновления / вставки. Фрагменты кода приведены ниже.

Редактировать шаблон

<td class="GridContent">
<asp:DropDownList 
    ID="lstDataType" 
    runat="server" 
    DataSourceID="DataType" 
    DataTextField="Name" 
    DataValueField="Name" 
    CssClass="GridContent">
</asp:DropDownList>

Параметр управления (Использование элемента управления ListView - Не предоставляет выбранное значение)

<asp:ControlParameter 
    ControlID="lstFields" 
    Name="DataType" 
    PropertyName="SelectedValue"
    Type="String" />

Параметр элемента управления (с помощью элемента управления DropDownList - обновление сообщает о слишком большом количестве параметров)

<asp:ControlParameter 
    ControlID="lstTypeID" 
    Name="Name" 
    PropertyName="SelectedValue"
    Type="String" />

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

UPDATE

В конце концов мне потребовалось некоторое время, чтобы найти ответ, но он довольно прост; хотя поиск элементов управления в нижней части дерева элементов управления ListView был полным кошмаром.

Что я сделал, так это добавил скрытый элемент управления меткой в ​​обновление и вставил шаблоны и привязал его к источнику SQLDataSource для просмотра списка. Затем я взял функцию FindControlRecursive, которая находится в некотором примере кода на сайте MSDN внизу статьи:

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

Затем в метод Page_Load для моей страницы я добавил два вызова функции FindControlRecursive: один для получения метки, а другой для получения выпадающего списка. Затем просто присваиваете значение DropDownList.text для Label.text, и все это прекрасно работает.

1 Ответ

0 голосов
/ 22 сентября 2011

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

...