1

我有一个带有按钮的 DropDownList:

<form id="form1" runat="server">
      <asp:DropDownList ID="DropDay" runat="server"/>
      <input type="submit" value="Save" runat="server" id="btn"/>
</form>

页面的 C# 代码:

protected void Page_Load(object sender, EventArgs e)
{
    btn.ServerClick+=new EventHandler(btn_ServerClick);
}

void btn_ServerClick(object sender, EventArgs e)
{
    HttpContext value= HttpContext.Current;
    value.Items.Add("Day", DropDay.SelectedValue);
    Server.Transfer("ASP_2.aspx");
}

在 ASP_2 我有一个标签,我需要设置选定的下拉列表值。这是 ASP_2.aspx 的代码:

protected void Page_Load(object sender, EventArgs e)
{
    HttpContext value= HttpContext.Current;
    lblDay.Text = value.Items["Day"].ToString();
}

问题是,该值始终是下拉菜单中的第一项。如何设置选定的值?

编辑

我填写下拉列表的方式代码进入Page_Load:

DropDay.Items.Clear();
for (int i = 1; i <= 10; i++)
{
    DropDay.Items.Add(i.ToString());
}
4

5 回答 5

1

您填写 DDL 的代码应该是(至少):

if (!IsPostBack)
{
  DropDay.Items.Clear();
      for (int i = 1; i <= 10; i++)
      {
          DropDay.Items.Add(i.ToString());
      }
}

希望这会有所帮助

于 2013-02-24T20:56:53.130 回答
0

您可以在第一页中使用它:

Server.Transfer("ASP_2.aspx?dropdown="+DropDay.SelectedValue);


and in the second page

 protected void Page_Load(object sender, EventArgs e)
{
  string val=Request.QueryString["dropdown"].toString();
}
于 2013-02-24T20:42:52.457 回答
0

也许您将下拉列表的 autopostback 属性设置为 true。

于 2013-02-24T20:51:02.970 回答
0

自己想出来,只需要删除“DropDay.Items.Clear();”

    //DropDay.Items.Clear(); removed this line and the thing was fixed
for (int i = 1; i <= 10; i++)
{
    DropDay.Items.Add(i.ToString());
}
于 2013-02-24T20:55:35.487 回答
-1

你试过 DropDay.SelectedItem.Text 吗?

于 2013-02-24T20:30:49.207 回答