easyui如何展现被选中的关联数据

来源:互联网 发布:土耳其人 知乎 编辑:程序博客网 时间:2024/05/01 10:50

现在有A表和C表,中间表为B表

后台需要查询数据库找出关联的数据,并且使得C表中的这些关联数据被勾选。

步骤1:sql中,需要创建一个checked列,并保证存在于B表的数据就赋值1,否则赋值0 ,这样做,可以使得将数据传到前台时候,checked=1 则在界面上展现为被选中的样式。

需要使用到sql中的 case when then else end checked 

示例sql:

select b.size_id, b.name, b.width,b.height, b.feng_mian_width,b.feng_mian_height, ifnull( b.remark ,'') remark   , case when (SELECTm4r.elem_idFROM(SELECT DISTINCTelem_idFROMt_b_zhuti_rls_elemsWHEREelem_code = 12AND zhuti_id IN (3)) m4rWHEREelem_id = b.size_idLIMIT 1) IS NOT NULL THEN1ELSE0END checked  from t_b_book_size as b   where 1=1 and b.lgc_del=1  ORDER BY b.size_id DESC  LIMIT 0,20 


步骤2:

可通过json格式 将数据返回到前端。如一张表格名为table,table列字段需要与返回的json一致,reload后 ,checked=1的行就可以显示为被选了。

$('#table').datagrid('reload',data);


步骤3:从样式上看,确实是被选上了,但是如果对表格有后续的操作,比如对表格选择某些行再进行授权什么的操作, 我们需要用到easyui的datagrid中的onLoadSuccess方法来selectRow

onLoadSuccess:function() {              var rows = $('#table').datagrid('getRows');            var rowcount = rows.length;              for(var i=0; i<rowcount; i++){                  if(rows[i].checked) {                      $('#<span style="font-family: Arial, Helvetica, sans-serif;">table</span>').datagrid('selectRow',i);                      } else {                      $('#<span style="font-family: Arial, Helvetica, sans-serif;">table</span>').datagrid('unselectRow',i);                    }              }          } 










1 0
原创粉丝点击