本文主要介绍解决DropDownList总是选择第一项的方法。DropDownList下拉框服务器控件是最常用的控件之一。虽然很好用,但是会出现奇怪的错误。感兴趣的朋友可以参考一下。
在网页开发过程中,页面中使用了一个DropDownList服务器控件,发现了一个非常奇怪的问题。无论在页面中选择哪一项,后台获取的值始终是第一项的值。看了半天,没发现问题。DropDownList控件在开发中使用了无数次,和其他代码相比也是如此!
过了几分钟,实在看不出问题出在哪里,只好在网上找答案。果然,网上很多人都遇到了“相同”的问题。—— DropDownList总是选择第一项。在线解决方案是使用if(!IsPostBack),但是我被这样绑定了,网上还是没有找到解决办法。
后来,我悄悄想了想。是因为我在绑定DropDownList时只给Text赋值,没有给Value赋值吗?然后我试着给每一项赋值。果然没有这种现象!
现在总结一下DropDownList控件总是选择第一项的两个原因。
首先,请看下面的代码:
客户代码:
ASP:DropDownListID=' DDL 1 ' runat=' server '
/asp:DropDownList
服务器代码:
受保护的void Page_Load(对象发送方,EventArgs e)
{
bindropdownlist();
}
私有void BindDropDownList()
{
ddl1。items . Clear();//每次绑定前清除所有项。
for(int I=1;I=3;我)
{
ListItem item 1=new ListItem();
1.item=' item ' I . ToString()' ';
1.item=' item ' I . ToString()' ';
ddl1。items . Add(item 1);
}
}
上面的代码案例,也就是网上说的总是选择第一项(选项不可更改),绑定方法用if(!IsPostBack)即可解决,代码如下:
受保护的void Page_Load(对象发送方,EventArgs e)
{
如果(!IsPostBack)
{
bindropdownlist();
}
}
第二种,也就是作者遇到的,请看下面这段代码:
客户代码:
ASP:DropDownList ID=' DDL 1 ' runat=' server '
/asp:DropDownList
nbspASP:button ID=' BTN get ' runat=' server ' text=' get ' onclick=' BTN get _ Click '/
服务器代码:
受保护的void Page_Load(对象发送方,EventArgs e)
{
如果(!IsPostBack)
{
bindropdownlist();
}
}
私有void BindDropDownList()
{
ddl1。items . Clear();//每次绑定前清除所有项。
for(int I=1;I=3;我)
{
ListItem item 1=new ListItem();
1.item=' item ' I . ToString()' ';
项目1。值=“”;
ddl1。items . Add(item 1);
}
}
受保护的void btnGet_Click(对象发送方,事件参数e)
{
string str=ddl1。SelectedItem . Text
页面。client script . RegisterStartupScript(这个。GetType(),' alert ',' script alert(' str ' ');/script’);
}
请注意第1项。值不赋值,但会导致获取文本值的混乱。给值赋个值就行了,不会有问题!
以上是网上大多数人遇到的“相同”问题的解决方法。—— DropDownList总是选择第一项,希望对大家的学习有帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。