У меня есть страница 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, и все это прекрасно работает.