DropDownList,正在获取C#中返回的DataValueField

本文关键字:返回 DataValueField 获取 DropDownList | 更新日期: 2023-09-27 18:20:06

我有一个下拉列表,它从数据库中提取数据,以显示它的一些选项:

    <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;

DropDownList,正在获取C#中返回的DataValueField

您可以使用SelectedValue属性:

// to set
DropDownList3.SelectedValue = "1";
// to read
string value = DropDownList3.SelectedValue;

尝试这个

String taskID = DropDownList3.SelectedItem.Value;

您可以使用的任何方式任一

dropdown3.selectedvalue

dropdown3.selecteditem.value