麻烦的会员分润发放


     要做一个查看明细的小dialog显示出每一条汇总记录的明细记录~
     点击table最后一列的a标签,获取同一行的第三列和第四列数据,并传到后台。刚开始用的是a标签的onclick,每次只能取到最后一行的数值,查了一下,JS有闭包的概念。几番曲折,最终还是大神过来指导了下,用jquery绑定点击事件就可以解决。因为是用servelt+jsp的结构,所以只能用ajax传值到servlet,后台根据传过来的月份和推荐人姓名查询到实体类集合。我在纠结怎么把这个实体类集合传回前台,突然好怀念springmvc的controller可以用@ResponseBody注解来返回json对象,很方便,以前没试过用servlet+ajax这种组合。转念一想,这个实体类集合可以转换成json类型再传回前台嘛~然后找了个json-lib这样的jar包,结果加入到maven依赖之后,又用不了,好像还需要好几个jar包,觉得这个太麻烦了,索性就换成alibaba的fastjson,轻便快捷,加入了对应的maven依赖之后,一运行发现报错,NoClassDefFound,我就纳闷呢,怎么编译通过了,一运行就出错了,怀疑是classpath找不到fastjson的jar包,于是去本地仓库看,发现fastjson已经存在了,于是就重新clean install一下。最终用一句代码就将实体类集合转成了json格式的字符串。
    我想着后台返回json格式的字符串,然后设置ajax接收的类型为text类型,然后在success回调方法中接收到字符串,再转化成json对象。发现返回的字符串格式是{a:xx; b:xx ; c:[{d:xx; e:xx ……},{f:xx; g:xx; ……},……],h:xx;……}这样的格式,取值的时候就用如下的方式:
    for (var i in data.c){
        var name = data.c[i].d;
        ……
    }
    然后再进行数据填充到弹出框表格。首先获取table对象,用getElementById("table的id"),可是一直取不到值,这点让我超纳闷,后来查了一下,说有一种原因是找不到页面元素,而非代码写错了(PS:之前以为是html元素写错了,比如少了关闭的tag之类的),一思索,觉得可能是什么东西把我的table给挡住了,以至于找不到它,然后我就在页面再写了个div来验证我的猜想,结果果然可以获取到该div。后来我把包裹table的最外层div最上面和最下面的两行注释删掉之后,就出来效果了,我的天啊!!
    本来一开始我没想到做个查看明细的dialog那么麻烦的,还以为三下五除二就完事了,结果其中的数据转换好繁琐,因为这个功能也不是说必须做好,本来想着算了做不出来不做了,也不是很坚定,某一刻突然充满信心决心一定要做出来就可以做,就是这样啦~
    这次做得算很认真,几乎每个过程都记得清清楚楚,也发觉了自己的很多不足,觉得编程功力太弱,很惭愧。

转载于:https://www.cnblogs.com/lindaZ/p/5772112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值