.net下用ajax实现的级联下拉菜单,无法设置默认下拉选项的问题
如题:
在页面中使用ajax异步更新dropdownlist二级、三级后,点击button后希望能够在回发的页面下保留上一页面dropdownlist中的各个选项,思路是通过页面的cs文件调用前台js代码(ClientScript.RegisterClientScriptBlock),刷新各个dropdownlist二级、三级的状态(请问还有其它更好的方法吗?)保持之前选择的各项;
遇到的问题是:能够刷新dropdownlist二级、三级列表,但是不能够设置所选择的项(始终默认都是第一项“---请选择---”),使用$('DropDownListCourse').value=value方法不行,请问是什么原因,如何实现?
dropdownlist二级:
text value
AAA 0000
BBB 1111
CCC 2222
前一页面选择了BBB,value=1111,希望回发的页面也保持这个选择状态;
------解决方案--------------------你可以js+ajax提交,不用回发而导致页面刷新
如果回发,你是否将当前选中值传递过去了?
------解决方案-------------------- <asp:DropDownList ID="DropDownList1"
AppendDataBoundItems="True" runat="server">
<asp:ListItem>--请选择--</asp:ListItem>
</asp:DropDownList>
------解决方案--------------------可能是你没加if(!IsPostBack){}
------解决方案--------------------对于在前台被修改了的下拉框选项,到后台就会回到原来的状态,所以应该在后台把值取出后,重新绑定
------解决方案--------------------
点击button是指提交数据到服务端么 ? 如果是的话,你应该可以很容易获得到相应的值
设置dropdownlist值为指定值,如果用js设置可以用ClientScript.RegisterClientScriptBlock等方式,但要注意设置的时候要确保dropdownlist中有相应的值,我猜你的情况是ajax请求还没执行,对应的dropdownlist中没数据,就先设置选中项了。
------解决方案--------------------保存上一页面数据的方式的选择
cookie
url
hidden
建议把选好的值放到cookie里,等页面刷新完了再重新读取cookie值,重新赋值