Использование элемента управления раскрывающегося списка внутри формы

Я новичок в asp.net, и у меня есть проблема с использованием элемента управления dropdownlist внутри formview и передачи его значения в связанный sqldatasource. Когда я использую код ниже, я получаю следующее исключение

Сведения об исключении: System.InvalidOperationException: Не удалось найти элемент управления "ddlCategory" в ControlParameter "categoryId".

Раскрывающийся список внутри формы.

      <asp:DropDownList ID="ddlCategory" DataSourceID="ObjectDataSourceCategory" DataTextField="NAME" DataValueField="ID" runat="server" />

Источник данных SQL

     <asp:ObjectDataSource ID="sqlDataSourceItem" TypeName="Item" runat="server"
      SelectMethod="getItem"
      InsertMethod="insertItem"
      UpdateMethod="updateItem">
     <SelectParameters>
        <asp:QueryStringParameter QueryStringField="id" Name="id" />
     </SelectParameters>
     <InsertParameters>
        <asp:ControlParameter ControlID="ddlCategory" Name="categoryId" PropertyName="selectedValue" />
     </InsertParameters>
     </asp:ObjectDataSource>

И я нашел решение этой проблемы. Я изменил идентификатор DDL в параметре управления. Это работает как показано ниже, так как это последний сгенерированный идентификатор этого элемента управления. Но я думаю, что должен быть более легкий и лучший способ. Любая помощь будет оценена.

    <asp:ControlParameter ControlID="ctl00$main$frmViewItem$ddlCategory" Name="categoryId" PropertyName="selectedValue" />

2 ответа

Решение

Этот ответ предоставит решение вашей проблемы:

Вам нужен рекурсивный findcontrol() метод.

Это потому, что ваша ddlCategory находится внутри формы, и вы используете главную страницу. Лучший способ - переписать функцию "FindControl" главной страницы. Пожалуйста, смотрите следующую ссылку для деталей:

http://geekswithblogs.net/AzamSharp/archive/2006/08/27/89475.aspx

Другие вопросы по тегам