easyui datagrid append后对不同列进行diasbled
时间: 2023-08-14 10:02:18 浏览: 166
jquery easyui datagrid列传参
3星 · 编辑精心推荐
在EasyUI的DataGrid中,我们可以通过定义列的formatter函数来实现根据不同列的值来禁用某些单元格。具体来说,我们可以在formatter函数中返回一个`<span>`标签,并给它添加一个`disabled`属性。然后,我们可以使用jQuery的`each()`函数来遍历DataGrid的所有行和列,并找到我们想要禁用的单元格,并将它的`<span>`标签设置为禁用状态。
下面是一个实现的示例代码:
```javascript
// 定义DataGrid的columns
var columns = [[
{field:'name',title:'Name',width:100},
{field:'age',title:'Age',width:100,formatter: function(value,row,index){
if (value > 18){
// 如果年龄大于18,则禁用单元格
return '<span disabled="disabled">'+value+'</span>';
} else {
return value;
}
}},
{field:'gender',title:'Gender',width:100,formatter: function(value,row,index){
if (value === 'Female'){
// 如果性别为女性,则禁用单元格
return '<span disabled="disabled">'+value+'</span>';
} else {
return value;
}
}}
]];
// 在DataGrid中添加数据后,禁用满足条件的单元格
$('#dg').datagrid('appendRow',{
name:'John',
age:20,
gender:'Male'
}).datagrid('appendRow',{
name:'Jane',
age:16,
gender:'Female'
}).datagrid('getPanel').find('span[disabled="disabled"]').each(function(){
$(this).closest('td').css('opacity', '0.5');
});
```
在上面的代码中,我们定义了一个包含三列的DataGrid,分别是`Name`、`Age`和`Gender`。在`Age`列和`Gender`列的formatter函数中,我们判断单元格的值是否满足某些条件,如果满足,则返回一个禁用状态的`<span>`标签。
接着,我们向DataGrid中添加了两行数据,并且使用`getPanel()`函数获取DataGrid的面板,然后使用`find()`函数查找所有禁用状态的`<span>`标签,并使用`each()`函数遍历它们,并将它们的父元素`<td>`的不透明度设置为0.5,从而禁用它们。
阅读全文