表格的行是用JS动态添加的,表格上面有三个DropDownList,用来选择省、市、区,其中选择省和市的下拉列表Autopostback属性为true,这样问题就出现了,当我动态添加几行后,再改变省、市下拉列表的value值后,添加的行就没了,就回到页面初始化时候了,怎么解决呀?另外,密码域也会出现这个问题,写好密码之后在选省和市,密码域里面的值就没了
从你的描述看,你是想在选择省,市时动态增加行吧,否则没有必要设置Autopostback属性为true.
要用Ajax实现,需用到<asp:UpdatePanel >控件.为控件添加省市DropDownList的change事件,并将表格置于这个控件中.
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="change"></asp:AsyncPostBackTrigger>
</Triggers>
<ContentTemplate>
<table>....</table>
</ContentTemplate>
</asp:UpdatePanel>
是这样的,功能是要往表中录入数据,动态添加行,省、市代码是其中一个字段,也就是说同一省、市有多行数据,要动态添加,但是当我添加完几行数据之后再选择省、市,动态添加的行就不见了,回到了最初加载时的页面
@淑女丫丫: 添加行的操作是用客户端脚本完成的吗?如果是这样就没必要设置Autopostback属性为true
@settan: 市是根据省动态绑定的,县区是根据市动态绑定的,dropdownlist数据源为datatable,所以必须设置Autopostback属性为true
@淑女丫丫:省市的dropdownlist 的Autopostback只更新县区的dropdownlist,而不是整个页面.所以要用ajax,实现局部刷新.
可以用juery的ajax函数,也可以用前面说的<asp:UpdatePanel >控件,把要刷新的部分放在控件<ContentTemplate>中:
<ContentTemplate>
//这里放县区的dropdownlist控件
</ContentTemplate>
懂了,多谢指教,不胜感激
除了使用ASP.NET Ajax(楼上)之外,还可以使用一般Ajax请求来实现省市区三级联动,一般大网站都是把三级数据(以Json或Xml)发送过来.
多谢指教,不胜感激
用ajax,不要用回发
多谢指教,不胜感激
原因: 你设置了Autopostback属性为true 会造成页面刷新 所以之前的状态就没有了.
解决办法: 省市联动也用ajax实现,可以使用jquery的ajax方法 通过一般处理程序的到省市 这样就可以避免你选择省市的时候页面刷新,这样问题就解决了撒!
多谢指教,不胜感激
手写Html控件,配合Ajax实现效果,就不会有这问题了
多谢指教,不胜感激
回发肯定是不对的 三级联动建议用js实现
多谢指教,不胜感激
用ajax操作吧,大概思路是页面第一次加载的时候把第一个下拉框绑定上数据,然后在下拉框的onchange事件中绑定第二个下拉框,第二个下拉框的onchange事件绑定第三个,去搜搜jq 联动 很简单。。
多谢指教,不胜感激
Ajax异步回发数据。
多谢指教,不胜感激