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

时间:2017-10-24 12:37:23

标签: c# asp.net ms-access webforms

我正在通过

将项目添加到DropdowList中
while (reader.Read()) {

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

};conn.Close();

这很有效。但是,当用户选择一个项目时,我还需要添加ID来使用它(所以我没有使用该名称的工作)。

我尝试按照solution;

解决这个问题
dpl.Items.Add(new ListItem(reader["Name"].ToString(), reader["ID"].ToString()));

但我无法让它发挥作用。

如何添加文字和值,只显示文字?

编辑:

这是我的DropDownList的唯一HTML行:

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

2 个答案:

答案 0 :(得分:1)

首先,添加HTML代码 DataSourceId 然后像gridview

一样提供 SqlDataSource

然后在数据中,您将同时获得ID和名称 然后用简单的CSS隐藏id

OnSelectedIndexChanged获取id并执行与该id

相关的任何操作

答案 1 :(得分:0)

我将尝试“窃取”您可以接受的答案,因为在我看来,这不是您要寻找的正确答案。抱歉。

Items.Add()方法实际上为您提供了两个选项。 StringList。答案在于List项。

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

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"

要在Value中放置与Text不同的结果,您需要构建一个list项目,然后将其添加。

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"

我希望能有所帮助。