【发布时间】:2014-07-31 09:21:42
【问题描述】:
我有一个嵌套在 FormView 的编辑模式中的动态下拉列表。用户可以从 DDL 中选择一个值,然后单击更新按钮来更新数据库中的一行。
<EditItemTemplate>
<asp:DropDownList ID="priorityLanguage_DDL" runat="server" DataSourceID="SqlDataSource_Languages" DataTextField="language" DataValueField="ID_language" selectedvalue='<%# Eval("priorityLanguage") %>'>
</asp:DropDownList>
<asp:LinkButton class="btn btn-default" ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" onclick="UpdateButton_click"/>
</EditItemTemplate>
<asp:SqlDataSource ID="SqlDataSource_membersDetails" runat="server"
ConnectionString="<%$ ConnectionStrings:DefaultConnection %>"
SelectCommand="SELECT * FROM [editorDetail] WHERE [IDuser]= @IDowner"
UpdateCommand="UPDATE [priorityLanguage] = @priorityLanguage_ddl_par WHERE [ID_editorDetail] = @ID_editorDetail">
<UpdateParameters>
<asp:Parameter Name="priorityLanguage_ddl_par" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
我的问题是如何将 DDL 的 DataValueField 传递给更新命令。我试图直接在内容页面上传递值,但我无法导致 DDL 嵌套在 FormView 中,因此无法找到 controlID。
我也尝试了后面的代码,但我没有设法将 int32 传递给参数 DefaultValue。
protected void UpdateButton_click(object sender, EventArgs e)
{
DropDownList priorityLanguage_DDL = FormView3.FindControl("priorityLanguage_DDL") as DropDownList;
SqlDataSource_membersDetails.UpdateParameters["priorityLanguage_ddl_par"].DefaultValue = (priorityLanguage_DDL.DataValueField);
}
我做错了什么???
【问题讨论】:
标签: c# asp.net formview sqlparameter