C# 将文本和值添加到DropDownList(aspx)中

C# 将文本和值添加到DropDownList(aspx)中,c#,asp.net,ms-access,webforms,C#,Asp.net,Ms Access,Webforms,我正在通过将项目添加到DropdowList中 while (reader.Read()) { dpl.Items.Add(reader["Name"].ToString()); };conn.Close(); 这起作用了。但是,我还需要添加ID,以便在用户选择项目时使用它(因此我不需要使用名称) 我试图通过遵循这一点来解决这个问题 但是我不能让它工作 如何添加文本和值并仅显示文本 编辑: 这是我的DropDownList的唯一HTML行: <asp:DropDownList ID

我正在通过将项目添加到DropdowList中

while (reader.Read()) {

dpl.Items.Add(reader["Name"].ToString());

};conn.Close();
这起作用了。但是,我还需要添加ID,以便在用户选择项目时使用它(因此我不需要使用名称)

我试图通过遵循这一点来解决这个问题

但是我不能让它工作

如何添加文本和值并仅显示文本

编辑:

这是我的DropDownList的唯一HTML行:

 <asp:DropDownList ID="dpl" runat="server" OnSelectedIndexChanged="dpl_OnSelectedIndexChanged" AutoPostBack="True" />

首先,添加HTML代码数据源ID 然后提供与gridview相同的SqlDataSource

然后在数据中,您将获得id和name 然后用简单的CSS隐藏id

在SelectedIndexChanged上,获取id并对该id执行任何操作,我将尝试“窃取”您可接受的答案,因为在我看来,这不是您要寻找的正确答案。对不起

Items.Add()
方法实际上为您提供了两个选项。
字符串
列表
。答案在
列表
项中

如果使用字符串选项,服务器端会将dropdownlist控件的值和文本部分分配给相同的字符串值

i、 e

要在
中放置与
文本
不同的结果,您需要构建一个
列表
项,然后添加它

ListItem li = new ListItem("I am a Text",100);
ddl.Items.Add(li);
Console.Write(ddl.Items[0].Value);  //this gives 100 
Console.Write(ddl.Items[0].Text);   //this also gives "I am a Text"

我希望这会有所帮助。

为dropdownlist@Aarsh很抱歉,我也应该提供它,只是添加了它;dpl.DataTextField=“Name”;dpl.DataValueField=“Id”;dpl.DataBind()DropDownList ddl = new DropDownList(); ddl.Items.Add("I am a value and a text"); Console.Write(ddl.Items[0].Value); //this gives "I am a value and a text" Console.Write(ddl.Items[0].Text); //this also gives "I am a value and a text"
ListItem li = new ListItem("I am a Text",100);
ddl.Items.Add(li);
Console.Write(ddl.Items[0].Value);  //this gives 100 
Console.Write(ddl.Items[0].Text);   //this also gives "I am a Text"