我今天早上试图修复的是ASP.NET控件下拉列表的问题:
我面临的方案是检索selecteditem并在重定向页面中显示(某种用户信息的某种摘要),然后为用户提供提交或编辑的选项。但我总是得到两个下拉列表中的第一项。
我的代码:
mydrop.DataSource = function();
mydrop.DataTextField = "test";
mydrop.DataValueField = "type";
mydrop.DataBind();
mydrop.SelectedIndex = 0;
string[] a = new string[] { test.SelectedItem.Text, test2.Text,};
Session["dataForm"] = a;
Response.Redirect("~/mypage.aspx");
在页面的page_load中,我将用户重定向到:
string[] a = (string[])Session["dataForm"];
test.Text = a.GetValue(0).ToString();
test2.Text = a.GetValue(1).ToString();
但我总是得到下拉列表的第一项,即使我改变了选择。
感谢您的阅读,并提前感谢您的帮助。
答案 0 :(得分:0)
首先,您可以设置autoPostback=true
,然后将Page_Load
放在 if(!IsPostback)
{
mydrop.DataSource = function();
mydrop.DataTextField = "test";
mydrop.DataValueField = "type";
mydrop.DataBind();
mydrop.SelectedIndex = 0;
}
下进行绑定:
SelectedIndexChanged
现在将代码置于mydrop
protected void mydrop_SelectedIndexChanged(object sender, EventArgs e)
{
string[] a = new string[] { test.SelectedItem.Text, test2.Text,};
Session["dataForm"] = a;
Response.Redirect("~/mypage.aspx");
}
事件中,如下所示:
{{1}}