ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

easyUI datagrid checkbox 不能提交多选 原因分析。

2021-05-01 19:52:46  阅读:209  来源: 互联网

标签:rows console log easyUI datagrid checkbox return opts


 原因分析过程如下:

<table id="tb" style="" class="easyui-datagrid" toolbar="#tool"
	 title="学习" selectOnCheck = "false" singleSelect="false" idField="kid">
    <thead>
	 <tr>
	    <th field="kid" width="0" hidden="true"></th>
	    <th field="no" width="30" align="center">序号</th>
	    <th field="content" width="510" editor="text">&nbsp&nbsp&nbsp内容</th>
	 
	  </tr>
    </thead>
   </table>


    今天使用easyUI做一个小东西,datagrid定义如上,但是提交数据的时候、 虽然选择了所有的checkbox都打上勾,但是提交到服务器的时候,发现只有最后一个点击的才是真正选择了的,其他的都变成未选。在网上搜罗好久,都没有搜到满意答案、也没有人给个解答,只好慢慢翻easyUI源码了。

  翻了几个小时、最终决定从 datagrid 的 getChecked 方法下手:

搜索到如下代码:
getChecked:function(jq){
return _555(jq[0]);

来到这里:
function _555(_556){
var _557=$.data(_556,"datagrid");
var opts=_557.options;
console.log(opts);
if(opts.idField){
return _557.checkedRows;
}else{
var rows=[];
opts.finder.getTr(_556,"","checked").each(function(){
rows.push(opts.finder.getRow(_556,$(this)));
});
console.log(rows);
return rows;
}
};



console.log(opts);
console.log(rows);

加上这两句,发现 idField 是  <table .... idField="kid"> 里定义的,取消这里对比发现,只要没有定义idField,就可以实现我想要的效果了,要么就只有最后选择的 才返回checked: return _557.checkedRows;

收摊!

标签:rows,console,log,easyUI,datagrid,checkbox,return,opts
来源: https://blog.51cto.com/huanghongqiao/2748944

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有