- JqGrid 的列属性见链接:http://www.qinbin.me/jquery-colmodel-property-description
- editType是列的编辑属性,可为text、textarea,select、checkbox、password、button、image、file等。
3、一般在一列中只能设置一种编辑属性,这里介绍的是动态修改列属性,使用户在点击单元格 时,在一列出 现不同的编辑属性
4、解决思路:
使用onCellSelect方法:在点击单元格时,保存上一行的值,然后根据不同需求设置单元格的 列属性
定义变量:varpreCellID;
onCellSelect :function(id){xs
$(this).saveRow(preCellID,true);//保存上一行的值
if(id&&id!=preCellID){ preCellID=id }//将当前行赋值给preCellID
//下面就是根据需求动态改变单元格的editType属性
// 可以根据id获得行的值,然后根据这一行的某个值判断应该显示什么编辑属性
// 假设这个值是strType,设置的列名是:paranValue
if(strType==1){ //代表这一行显示下拉框 select
$("#editGrid").setColProp("paranValue",{
editType:select,
editOptions:getSelectvalue(条件),//根据条件动态获取下拉框的值
}) ;
$(this).editRow(id,true) ;//这个设置是使行进入编辑状态,与前面 // 的 $(this).saveRow(preCellID,true)对应,
}if(strType==2){
$("#editGrid").setColProp("paranValue",{
editTYpe:checkbox,
editOptions:{value:“ON:OFF”},
formatter:"text" //以文本形式显示,即显示在界面上的值是ON或OFF
}
$(this).editRow(id,true)
} if(strType==3){ //在editType为text的情况下,添加时间控件datetimepiker
$("#editGrid").setColProp("paranValue",{
editType:text,
formatter:"text"
}
$(this).editRow(id,true,functionpickdates(id){
jQuery("#"+id+"_paramValue","editGrid").datetimepiker({
dateFormate:"yy-mm-dd",//格式化日期
timeFormate:"HH:mm:ss"//格式化时间
})
})
}if(strType==4){ //在editType为text的情况下,添加数字控件spinner
$("#editGrid").setColProp("paranValue",{
editType:text,
formatter:"text"
}
$(this).editRow(id,true,functionSpinner(id){
jQuery("#"+id+"_paramValue","editGrid").spinner({
})
//这里只选了 时间控件和数字控件做例子,对于JQuery控件,以type=text的控件, 都可以用上述方法嵌套在jqGrid表格的单元格中
})
备注:未完成,见下文