下拉值只选择第一个值
本文关键字:第一个 选择 | 更新日期: 2023-09-27 18:07:30
在下面的c#代码中,即使我选择了自己的年份,但仍然将值传递为1920。我可以看到在下拉框中显示的所有值,但是当我选择一个值并提交它时,只有1920被传递到数据库。
protected void Page_Load(object sender, EventArgs e)
{
DropDownList3.Items.Clear();
for (int i = 1920; i <= 2000; i++)
{
DropDownList3.Items.Add(i.ToString());
}
}
protected void Button1_Click(object sender, EventArgs e)
{
sbtc.dex(DropDownList3.SelectedItem);
}
谁能告诉我我哪里做错了?
因为当您单击按钮时,它再次执行Page_Load
事件中的代码。解决方法是只设置一次下拉值。您可以使用Page.IsPostBack
属性来检查这是初始加载还是回发。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
DropDownList3.Items.Clear();
for (int i = 1920; i <= 2000; i++)
{
DropDownList3.Items.Add(i.ToString());
}
}
}
试试;
if(!IsPostBack)
[
for (int i = 1920; i <= 2000; i++)
{
DropDownList3.Items.Add(i.ToString());
}
}
也尝试为选中的项目设置一个值,像这样,确保检查回发
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
DropDownList3.Items.Clear();
for (int i = 1920; i <= 2000; i++)
{
DropDownList3.Items.Add( new ListItem(i.ToString(), i.ToString()));
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
sbtc.dex(DropDownList3.SelectedItem);
}