我希望这是一个快速的。对不起,还是一个ASP / C#n00b,我似乎无法找到一个例子。
我想要做的是在ASP页面上有一个下拉列表。我希望列表显示2个值;福利类型和优先权。但是,下拉列表用作要显示的数据的过滤器,因此表中的字段名称是BENTYP和PRIO。因此,用户将看到“福利类型”,但代码隐藏将能够读取“BENTYP”。它有点像一个2列组合框,其中隐藏了一列。
有意义吗?我知道这在Access中很容易,我无法想象它在ASP中太难了但我还没有经验。另外,如果你很善良,你能否告诉我代码隐藏如何阅读“隐藏”栏中的文字?
编辑:为了清楚起见,下拉列表看起来像这样:
Column1(可见)Column2(不可见)
福利类型---- BENTYP
优先级----------- PRIO
答案 0 :(得分:1)
<asp:DropDownList id="List"
AutoPostBack="True"
OnSelectedIndexChanged="Selection_Change"
runat="server">
<asp:ListItem Value="BENTYP"> Benefit Type </asp:ListItem>
<asp:ListItem Value="PRIO"> Priority </asp:ListItem>
</asp:DropDownList>
从后面的代码中你只需要访问你想要的东西:
string item1 = List.DataTextField.ToString();
string item2 = List.DataValueField.ToString();
希望它有所帮助。
答案 1 :(得分:0)
您所问的正是下拉列表的功能,它具有&#34;价值&#34;和&#34;文字&#34;对于它包含的每个项目,只需将值设置为第二列,将文本设置为第一列。
从后面的代码中你可以像这样添加它:
ListItem item = new ListItem("text (first column)", "value (second column)");
item.Selected = true; // whatever you want here
yourDropdownList.Items.Add(item);
要在后面的代码中获取所选项(ListItem对象),请使用:
var item = yourDropdownList.SelectedItem;
var text = item.Text;
var val = item.Value;