关于DWR级连下拉列表保持查询数据问题引发的思考

本文介绍使用 DWR 实现下拉列表级连过程中遇到的问题及解决方法,包括设置默认值无效的原因分析及解决策略,并分享了处理字符串前后空格的技巧。

     前段时间用DWR做下拉列表级连,当时没注意保持下拉列表查询数据。前几天要求来了,我就开始做,在做的时候,遇到了很郁闷的问题..下面简单介绍一下我的下拉列表实现。

     下拉列表是通过DWRUtil.addOptions("id",MAP)实现,一级通过onload的装载,下面级就通过 onChange触发。另外我在JSP也面加了一行<option value="0">--请选择--</option>(这个是初始化作为默认的) 。我用DWRUtil.setValue("id",..)设置默认值,但让我郁闷的是这样设置没效果。加alert测试没效果,我就加了个测试按钮人为的去测试.这样又有值。我就想难道是DWRUtil.setValue问题.我就用老方法for循环一个一个的和原来的值比较加上alert.

var sum=document.getElementById("sum")

for(var i=0;i<sum.length;i++){

      alert(sum.options[i].value);

     if( sum.Options[i].value==XX){

         sum.options.selected=true;

      }

 

}

 

发现是有个延迟问题. 我开始怀疑我对onload的理解,后来问问人.onload就是页面生成之后加载,这也没错,为什么设置的查询值会被刷掉。

     在网上看资料的时候偶然发现DWR也属于AJAX那是异步啊..我原来一直以为DWR是同步的.哎。看书不认真一字之差啊。发现问题所在就简单了.设置DWR同步.DWREngine.setAsync(false);就没大问题了,后面碰到的是数据后面多了空格..网上看了下好多感觉有几个不错.我把他帖上吧

  1. //为String对象添加Trim,LTrim,RTrim方法   
  2. //去左右空格   
  3. String.prototype.trim = function()   
  4. {   
  5.     return this.replace(/(^/s*)|(/s*$)/g, "");   
  6. }   
  7. //去左空格   
  8. String.prototype.LTrim = function()   
  9. {   
  10.     return this.replace(/(^/s*)/g, "");   
  11. }   
  12. //去右空格   
  13. String.prototype.RTrim = function()   
  14. {   
  15.     return this.replace(/(/s*$)/g, "");   
  16. }  

用的时候直接用,

var ttt="aaa ";

ttt=ttt.trim();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值