2012-12-26 76 views
4

我是asp.net新手,我在使用formview中的下拉列表控件並將其值傳遞給相關的sqldatasource時遇到了問題。當我使用下面的代碼時,我得到以下異常在formview中使用下拉列表控件

異常詳細信息:System.InvalidOperationException:在ControlParameter'categoryId'中找不到控件'ddlCategory'。

formview中的Dropdownlist。

 <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的ID。它像下面一樣工作,因爲這是該控件的最終生成的ID。但我認爲必須有一個更容易和更好的方法。任何幫助將被appriciated。

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

回答

0

This answer將提供一個解決問題的方法:

你需要一個遞歸findcontrol()方法。