先上图:
自己在网上查了好多,有的给出了好思路但是实行起来却没好的方法!
1、比较多的是数据加载成功后一个个判断!但是我是在detail-grid中用的checkbox.,$("input [type=checkbox]")选择会让每个
detail的表格都会选中!查看显示网页,发现input并不在每个detail-grid中,所以想用$("#detail-0 input")的思路也失败!/
2、用自定义checkbox,formatter是返回<input type="checkbox"/>,但是选中功能和全选功能不能使用,所以很不好。
切入正题:
用到列的styler 和 formatter属性和onSelectAll事件
A、首先checkbox列绑定控制数据,在styler 函数中可以判断改行数据是否禁用checkbox,如果禁用则设置checkbox=false,否则checkbox=true,必须要设置为true,否则第一个禁用行之后的都会被禁用!
例如:[code=javascript]
function showstyle(value,rowData,rowIndex) {
if (rowData.项目编号== 1) {
$(this)[0].checkbox = false;
} else {
$(this)[0].checkbox = true;
}
}
[/code]
B、然后写formatter属性,当checkbox=ture貌似是不响应这个事件的,被禁用的行checkbox=false ,所以可以相应该属性,这时候你就可以自定义该属性了,返回一个禁用的checkbox或者显示其他文字都可以。
[code=javascript]
function showcheck(value,rowData,rowIndex) {
if (rowData.项目编号 == 1) {
return "已计划";
}
}
或者:
function showcheck(value,rowData,rowIndex) {
if (rowData.项目编号 == 1) {
return '<input type="chckbox" disabled="true"/>';
}
}
[/code]
C 、最后一步就是改变全选的事件,全选时当然希望禁用的不能被选中,所以在onSelectAll时要把禁用的给取消掉。
[code=javascript]
onSelectAll: function (rows) {
for (i = 0; i < rows.length; i++) {
if (rows[i].项目编号 == 1) {
$(this).datagrid("unselectRow", i);
}
}
}
[/code]
自己在网上查了好多,有的给出了好思路但是实行起来却没好的方法!
1、比较多的是数据加载成功后一个个判断!但是我是在detail-grid中用的checkbox.,$("input [type=checkbox]")选择会让每个
detail的表格都会选中!查看显示网页,发现input并不在每个detail-grid中,所以想用$("#detail-0 input")的思路也失败!/
2、用自定义checkbox,formatter是返回<input type="checkbox"/>,但是选中功能和全选功能不能使用,所以很不好。
切入正题:
用到列的styler 和 formatter属性和onSelectAll事件
A、首先checkbox列绑定控制数据,在styler 函数中可以判断改行数据是否禁用checkbox,如果禁用则设置checkbox=false,否则checkbox=true,必须要设置为true,否则第一个禁用行之后的都会被禁用!
例如:[code=javascript]
function showstyle(value,rowData,rowIndex) {
if (rowData.项目编号== 1) {
$(this)[0].checkbox = false;
} else {
$(this)[0].checkbox = true;
}
}
[/code]
B、然后写formatter属性,当checkbox=ture貌似是不响应这个事件的,被禁用的行checkbox=false ,所以可以相应该属性,这时候你就可以自定义该属性了,返回一个禁用的checkbox或者显示其他文字都可以。
[code=javascript]
function showcheck(value,rowData,rowIndex) {
if (rowData.项目编号 == 1) {
return "已计划";
}
}
或者:
function showcheck(value,rowData,rowIndex) {
if (rowData.项目编号 == 1) {
return '<input type="chckbox" disabled="true"/>';
}
}
[/code]
C 、最后一步就是改变全选的事件,全选时当然希望禁用的不能被选中,所以在onSelectAll时要把禁用的给取消掉。
[code=javascript]
onSelectAll: function (rows) {
for (i = 0; i < rows.length; i++) {
if (rows[i].项目编号 == 1) {
$(this).datagrid("unselectRow", i);
}
}
}
[/code]