本来想着官方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","");
					}
				}


欢迎留言