flexigrid扩展(添加全选,格式化表单)

时间:2023-03-09 13:20:49
flexigrid扩展(添加全选,格式化表单)

1.关于flexigrid的属性这里不多说,百度一大把。

这里主要说一个参数process

process参数:编写对某一列进行自定义处理的函数 function 方法名(tddiv,pid){}//tddiv:每个td内div对象的innerHTML, pid:td所在tr的id值

添加全选按钮的思路:

1.<thead>添加checkbox

 colModel : [       {display : '<input type=\"checkbox\" name=\"check_all\" onclick=\"CheckAll();\" id=\"check_all\" >',

            name : 'checkall',

            width : 30,

        sortable : false,

             align : 'center'

       process:seldel(自定义方法名)

      }],

2.<tbody>中每一行添加checked

   function seldel(val,id){

       val.innerHTML="<input type=\"checkbox\" onclick=\"alert(333)\">"

   }

3. 添加全选事件
        大家都知道,对全选的checkbox添加onclick事件使子checkbox checked。

但是在处理onclick事件获取全选checkbox的checked的值时出现异常:即使在上面打勾了,获取的值也为默认值(false),具体原因没有

深入查找,可能是因为和flexigrid中div冲突吧

于是想起了input中的hidden了,每次onclick时,为hidden的value设置1/0,用该值判断全选按钮是否被选中,当然添加一个tr也可以,设置style="display:none"

//全选
function CheckAll(){
var state = true;
var textCheck = document.getElementById("test").value;
if(textCheck=="0"){
state = false;
//全选textCheck="1"不要犯这种低级错误哦,这样赋值是赋不上的
document.getElementById("test").value="1";
}else{
document.getElementById("test").value="0";
}
var check_ids = document.getElementsByName("check_id");
for(var i=0; i<check_ids.length; i++){ if(!check_ids[i].disabled){ check_ids[i].checked = state;
}
} }