我正在通过
将项目添加到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" />
答案 0 :(得分:1)
首先,添加HTML代码 DataSourceId 然后像gridview
一样提供 SqlDataSource然后在数据中,您将同时获得ID和名称 然后用简单的CSS隐藏id
OnSelectedIndexChanged获取id并执行与该id
相关的任何操作答案 1 :(得分:0)
我将尝试“窃取”您可以接受的答案,因为在我看来,这不是您要寻找的正确答案。抱歉。
Items.Add()
方法实际上为您提供了两个选项。 String
或List
。答案在于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"
我希望能有所帮助。