您的位置:首页 > 编程语言 > ASP

<asp:UpdatePanel中使用下拉时不得不注意的问题

2012-05-06 16:37 393 查看
今天使用<asp:UpdatePanel NET的一个AJAX的一个里面的一个控件

,他能很好的结合NET原有控件,进行异步的请求,从而改善客户端感受。

但是今天我使用的时候,却发现我的值一直不能提交到服务器,而且是个别下拉不行,你选中以后他会默认到其他下拉里面去,这是为什么的,让我一直找不到原因。

一直不得其解,最后没有办法使用HTML排除法,当我右键打开源码的时候总算发现了问题

<select name="ddlYear" onchange="javascript:setTimeout('__doPostBack(\'ddlYear\',\'\')', 0)" id="ddlYear">
<option selected="selected" value="4,5,6,7,8,9,10,11,12">2012</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2013</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2014</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2015</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2016</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2017</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2018</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2019</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2020</option>
<option value="1,2,3,4,5,6,7,8,9,10,11,12">2021</option>
<option value="1,2,3,4">2022</option>
</select>


当我看到这里的时候有些明悟了,原来因为他们的value是一致的,所以当你选择进行返回数据时,HTTP就会认为你是发送的多余的请求,从而你的这个操作就会失败。

没有办法我就把 text值放到了 value值中,于是问题解决。

<select name="ddlYear" onchange="javascript:setTimeout('__doPostBack(\'ddlYear\',\'\')', 0)" id="ddlYear">
<option selected="selected" value="2012-4,5,6,7,8,9,10,11,12">2012</option>
<option value="2013-1,2,3,4,5,6,7,8,9,10,11,12">2013</option>
<option value="2014-1,2,3,4,5,6,7,8,9,10,11,12">2014</option>
<option value="2015-1,2,3,4,5,6,7,8,9,10,11,12">2015</option>
<option value="2016-1,2,3,4,5,6,7,8,9,10,11,12">2016</option>
<option value="2017-1,2,3,4,5,6,7,8,9,10,11,12">2017</option>
<option value="2018-1,2,3,4,5,6,7,8,9,10,11,12">2018</option>
<option value="2019-1,2,3,4,5,6,7,8,9,10,11,12">2019</option>
<option value="2020-1,2,3,4,5,6,7,8,9,10,11,12">2020</option>
<option value="2021-1,2,3,4,5,6,7,8,9,10,11,12">2021</option>
<option value="2022-1,2,3,4">2022</option>

</select>


主要是保证值的唯一性,这样在发起异步请求时,他就不会以为你是发送的垃圾的请求就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: