0

我希望这是一个快速的。抱歉,仍然是 ASP/C# n00b,我似乎找不到示例。

我想做的是在 ASP 页面上有一个下拉列表。我希望列表显示 2 个值;福利类型和优先级。但是,下拉列表用作要显示的数据的过滤器,因此我在表中的字段名称是 BENTYP 和 PRIO。因此,用户将看到“Benefit Type”,但代码隐藏将能够读取“BENTYP”。它有点像一个隐藏一列的 2 列组合框。

说得通?我知道这是 Access 中的一个小技巧,我无法想象它在 ASP 中太难了,但我还没有经验。另外,如果你好心,你能告诉我代码隐藏如何读取“隐藏”列中的文本吗?

编辑:为了清楚起见,下拉列表看起来像这样:

Column1(可见) Column2(不可见)

福利类型----BENTYP

优先级----------- PRIO

4

2 回答 2

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

希望能帮助到你。

创立于MSDN

于 2013-05-23T20:03:36.850 回答
0

您所问的正是下拉菜单的功能,它包含的每个项目都有一个“值”和一个“文本”,只需将值设置为第二列,将文本设置为第一列。

从后面的代码中,您可以像这样添加它:

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;
于 2013-05-23T20:06:26.540 回答