编辑:所以我发现此行为listItem.Value = rdr["lvl"].ToString();
下拉列表中的每个项目添加相同的值。由于每个文本项都具有相同的值,因此我猜它始终默认为第一个文本项。我现在正在lvl
通过另一个查询而不是下拉列表。感谢您提供的所有有用信息!
我正在尝试完成一个非常简单的任务,我之前已经完成了无数次。由于某些原因,我无法通过下拉菜单正确地传递SelectedItem
和SelectedValue
。
该SelectedItem
和SelectedValue
总是返回在下拉列表中的第一个项目,不管我选择的项目。
我究竟做错了什么?
定义下拉菜单和按钮:
<asp:DropDownList ID="DropDownList1" runat="server" >
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
在PageLoad上填充下拉列表:
myConnection.Open();
SqlCommand rpt = new SqlCommand(getreports, myConnection);
SqlDataReader rdr = rpt.ExecuteReader();
if (!Page.IsPostBack)
{
while (rdr.Read())
{
ListItem listItem = new ListItem();
listItem.Text = rdr["manager"].ToString();
listItem.Value = rdr["lvl"].ToString();
DropDownList1.Items.Add(listItem);
}
rdr.Close();
myConnection.Close();
}
按钮传递的代码应通过SelectedItem
和SelectedValue
:
protected void Button1_Click(object sender, EventArgs e)
{
string user = DropDownList1.SelectedItem.Text;
string lvl = DropDownList1.SelectedValue;
Label1.Text = user;
Label2.Text = lvl;
}
我意识到为每个项目分配了相同的值。这就是下拉菜单中的第一项始终通过的原因,与选择无关。只要值不同,以上所有代码均按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句