我有一个下拉列表,它从数据库中提取数据以显示其中的一些选项:
<asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="SqlDataSource1"
DataTextField="Name" DataValueField="PK_Task" AppendDataBoundItems="true" CssClass="dropDownList">
<asp:ListItem Selected="True">General Support</asp:ListItem>
<asp:ListItem>Vacation</asp:ListItem>
<asp:ListItem>Sick Leave</asp:ListItem>
<asp:ListItem>Something Else</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SELECT [PK_Task], [Name] FROM [Task] WHERE ([PointPerson] LIKE '%' + @PointPerson + '%') AND [Status] NOT LIKE 'Done'">
<SelectParameters>
<asp:QueryStringParameter Name="PointPerson" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
如您所见,我只显示[名称]列:
DataTextField="Name"
但我也得到了主键SELECT [PK_Task],[Name] FROM:
DataValueField="PK_Task"
如何根据用户选择访问此主键。如果用户从下拉菜单中选择一个特定的“名称”,我可以用什么C#将相应的主键返回给我,以便将其保存在变量中?
我得到的最接近的是这个,但它只是返回字符串“PK_Task”:
String taskID = DropDownList3.DataValueField;
答案 0 :(得分:5)
您可以使用SelectedValue
属性:
// to set
DropDownList3.SelectedValue = "1";
// to read
string value = DropDownList3.SelectedValue;
答案 1 :(得分:3)
试试这个
String taskID = DropDownList3.SelectedItem.Value;
答案 2 :(得分:0)
你可以用任何方式
dropdown3.selectedvalue
或
dropdown3.selecteditem.value