【问题标题】:List Item dropdown列表项下拉列表
【发布时间】:2017-11-29 12:37:56
【问题描述】:

我有下面的代码来显示下拉列表,但是当它显示在下拉列表中时,名称和值对看起来都是一样的。

aspx.cs:

DropDownList dp = new DropDownList();
dp.ID = ToString();

dp.Items.Add(new ListItem("test1", "This is test1"));
dp.Items.Add(new ListItem("test2", "This is test2"));

Script.DataSource = dp.Items;
Script.DataBind();

aspx:

<asp:DropDownList ID="Script" runat="server" OnSelectedIndexChanged="ScriptSelected" AutoPostBack="true">

</asp:DropDownList>

当我调试时发现名称和值都相同,如下所示

<select name="Script" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;Script\&#39;,\&#39;\&#39;)&#39;, 0)" id="Script">
<option value="test1">test1</option>
<option value="test2">test2</option>
</select>

但需要如下所示

<select name="Script" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;Script\&#39;,\&#39;\&#39;)&#39;, 0)" id="Script">
<option value="test1">This is test1</option>
<option value="test2">This is test2</option>
</select>

【问题讨论】:

标签: c# asp.net


【解决方案1】:

您需要为控件同时指定 DataValueField 和 DataTextField。

<asp:DropDownList ID="Script" runat="server" OnSelectedIndexChanged="ScriptSelected" AutoPostBack="true" DataValueField="Value" DataTextField="Text">
</asp:DropDownList>

或者,如果你想在服务器端做,

DropDownList dp = new DropDownList();
dp.ID = ToString();
dp.DataTextField = "Text";
dp.DataValueField = "Value";

dp.Items.Add(new ListItem("test1", "This is test1"));
dp.Items.Add(new ListItem("test2", "This is test2"));

Script.DataSource = dp.Items;
Script.DataBind();

【讨论】:

  • 非常感谢您的快速响应,它按预期工作
猜你喜欢
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2011-07-14
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多