首页 新闻 会员 周边 捐助

怎样不让页面回PostBack咧????苦恼(O_O)?

0
悬赏园豆:20 [已解决问题] 解决于 2013-05-18 18:02

表格的行是用JS动态添加的,表格上面有三个DropDownList,用来选择省、市、区,其中选择省和市的下拉列表Autopostback属性为true,这样问题就出现了,当我动态添加几行后,再改变省、市下拉列表的value值后,添加的行就没了,就回到页面初始化时候了,怎么解决呀?另外,密码域也会出现这个问题,写好密码之后在选省和市,密码域里面的值就没了

丫丫是个小码农的主页 丫丫是个小码农 | 初学一级 | 园豆:93
提问于:2013-05-16 20:51
< >
分享
最佳答案
0

从你的描述看,你是想在选择省,市时动态增加行吧,否则没有必要设置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>

收获园豆:20
settan | 初学一级 |园豆:154 | 2013-05-16 21:07

是这样的,功能是要往表中录入数据,动态添加行,省、市代码是其中一个字段,也就是说同一省、市有多行数据,要动态添加,但是当我添加完几行数据之后再选择省、市,动态添加的行就不见了,回到了最初加载时的页面

丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-16 21:14

@淑女丫丫: 添加行的操作是用客户端脚本完成的吗?如果是这样就没必要设置Autopostback属性为true

settan | 园豆:154 (初学一级) | 2013-05-16 21:18

@settan: 市是根据省动态绑定的,县区是根据市动态绑定的,dropdownlist数据源为datatable,所以必须设置Autopostback属性为true

丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-17 18:51

@淑女丫丫:dropdownlist  的Autopostback只更新县区的dropdownlist,而不是整个页面.所以要用ajax,实现局部刷新.

可以用juery的ajax函数,也可以用前面说的<asp:UpdatePanel >控件,把要刷新的部分放在控件<ContentTemplate>中:

<ContentTemplate>
//这里放县区的dropdownlist控件

</ContentTemplate>

settan | 园豆:154 (初学一级) | 2013-05-17 19:47

懂了,多谢指教,不胜感激

丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:01
其他回答(7)
0

除了使用ASP.NET Ajax(楼上)之外,还可以使用一般Ajax请求来实现省市区三级联动,一般大网站都是把三级数据(以Json或Xml)发送过来.

yyutudou | 园豆:997 (小虾三级) | 2013-05-16 21:19

多谢指教,不胜感激

支持(0) 反对(0) 丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:00
0

用ajax,不要用回发

腐乳 | 园豆:12 (初学一级) | 2013-05-16 21:23

多谢指教,不胜感激

支持(0) 反对(0) 丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:00
0

原因:  你设置了Autopostback属性为true 会造成页面刷新 所以之前的状态就没有了.

解决办法: 省市联动也用ajax实现,可以使用jquery的ajax方法 通过一般处理程序的到省市 这样就可以避免你选择省市的时候页面刷新,这样问题就解决了撒!

Arthur1024 | 园豆:91 (初学一级) | 2013-05-16 21:24

多谢指教,不胜感激

支持(0) 反对(0) 丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:00
0

手写Html控件,配合Ajax实现效果,就不会有这问题了

轻狂の书生 | 园豆:1042 (小虾三级) | 2013-05-16 23:25

多谢指教,不胜感激

支持(0) 反对(0) 丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:00
0

回发肯定是不对的 三级联动建议用js实现

隔壁王叔 | 园豆:4 (初学一级) | 2013-05-16 23:48

多谢指教,不胜感激

支持(0) 反对(0) 丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:00
0

用ajax操作吧,大概思路是页面第一次加载的时候把第一个下拉框绑定上数据,然后在下拉框的onchange事件中绑定第二个下拉框,第二个下拉框的onchange事件绑定第三个,去搜搜jq 联动 很简单。。

邵明瑞 | 园豆:105 (初学一级) | 2013-05-17 08:53

多谢指教,不胜感激

支持(0) 反对(0) 丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:00
0

Ajax异步回发数据。

后知然后觉 | 园豆:213 (菜鸟二级) | 2013-05-17 09:10

多谢指教,不胜感激

支持(0) 反对(0) 丫丫是个小码农 | 园豆:93 (初学一级) | 2013-05-18 18:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册