本来想着官方API可能会有个配置,自己能分分钟搞定的,然后就自己写了。看过别人的一篇文章,有了思路,现在把具体实现记录下来,遇到相同的问题,可以参考一下。
1:先不要想着解决问题,我们先来看一下datagrid的结构。
是不是发现了什么?datagrid的列表结构为:datagrud-view,然后datagrud-view下面有datagrid-view1,还有datagrid-view2.datagrid-view1好像是列表的表头。。(忘记了,反正也不是我想要讨论的重点)
重点:我们整个列表的数据都放在datagrid-view2里面,打开datagrid-view2,里面有一个datagrid-header,这个里面,放着列表所有列的列头,比如你的列id是userName,然后这里放的就是userName。在往里面放的就是对应得名字。
在往下,可以看到有datagrid-body,我们所有的数据,都在这里了!!!
好了,我们要的数据,就都在这里了。第几行,第几列,全在这...
下面就js实现的代码:datagrid有一个点击事件,会把行和列给你,根据这个去做判断,就OK了!
onClickCell : function(rowIndex, field, value){ var dataNum = parseInt(value); if(!dataNum > 0 || field === "dataTime"){ return; } var data = {}; data.dataTime = $('#listDataEx1').datagrid('getRows')[rowIndex].dataTime; data.polluteCode = field; data.pointCode = pointCode; //搞个主键,用来减少匹配指数 var dataTimeNum = data.dataTime.replace(/[^0-9]/g,""); data.id = dataTimeNum+field; //选中了,换个脸 var style = "#datagrid-row-r2-2-"+rowIndex+" [field='"+field+"']"; var dataValue = $(style).attr("style"); if(isEmpty(dataValue)){ $(style).attr("style","background:red;"); dataNotPass.push(data); }else{ dataReviewDisplay.matchData(dataNotPass,data.id); $(style).attr("style",""); } }
文章评论