详解jquery easyui之datagrid使用参考

前端之家收集整理的这篇文章主要介绍了详解jquery easyui之datagrid使用参考前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文介绍了jquery easyui之datagrid使用,具体如下:

创建datagrid

页面添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid。代码如下:

页面上的div标签

js代码

Box: true },{ field: '刊名',title: '刊名',width: 180,align: 'left' },{ field: '类别',title: '类别',width: 150,{ field: '月份',title: '月份',width: 100,{ field: '期次',title: '期次',{ field: '价格',title: '价格',align: 'right' },{ field: '订阅数',title: '订阅数',{ field: '库存数',title: '库存数',{ field: '邮寄方式',title: '邮寄方式',width: 80,{ field: '数量',title: '数量',align: 'left',editor: { type: 'numberBox',options: { min: 0,precision: 0 } } } ]],onBeforeLoad: function (param) { },onLoadSuccess: function (data) {

},onLoadError: function () {

},onClickCell: function (rowIndex,field,value) {

}
});

ajax请求返回的数据格式

datagrid在创建完成后会根据url请求数据,这是通过ajax来完成的。服务器在完成请求处理后应返回带有rows属性的数据,如果用到分页,还需要有total属性

说到ajax请求,难免需要在请求的时候传入一些查询条件,我通常是在onBeforeLoad事件中添加查询条件的:

分页处理

如果要启用分页,在datagrid配置中,首先要加入如下配置:

这样一来我们的datagrid底部就会出现一个分页工具栏。

这个时侯,datagrid在请求数据的时候会自动添加分页的信息:

  • page:当前请求的页码
  • rows:每页要显示的行数

在服务器端获取到这两个参数值,然后通过获取数据库中的总数据行数来完成数据处理。

关于checkBox

上面的js代码创建的datagrid本身已经添加了checkBox列,就是第一列。checkBox列将会自适应宽度。

关于rownumber列

rownumber列的配置是在全局设置的,如果设置为true则会添加一列来显示行号。

行编辑功能的实现

datagrid本身提供了行编辑的功能。只需要两个步骤:

1.设置列的editor属性

2.手动触发编辑

第一步,我们需要在column配置中指明editor,editor有两个属性,type和options,有效的type字符串有:

text,textarea,checkBox,numberBox,validateBox,dateBox,comboBox,combotree

options则对应这些控件的具体配置,包括事件等。

Box',options: { min: 0,precision: 0 } }

如果不需要特殊的options配置,直接将type字符串赋给editor即可。

第二步,我们需要监听datagrid的onRowClick事件,或者onCellClick事件,我更愿意监听onCellClick事件,可以根据点击不同的字段来进入编辑模式,并设置单元格编辑控件的focus。

这里调用了beginEditing方法

数量") return;

if (rowIndex != editIndex) {
if (endEditing()) {
$('#magazineGrid').datagrid('beginEdit',rowIndex);
editIndex = rowIndex;

  var ed = $('#magazineGrid').datagrid('getEditor',{ index: rowIndex,field: '<a href="/tag/shuliang/" target="_blank" class="keywords">数量</a>' });
  $(ed.target).focus().bind('blur',function () {
    endEditing();
  });
} else {
  $('#magazineGrid').datagrid('selectRow',editIndex);
}

}
}
var endEditing = function () {
if (editIndex == undefined) { return true }
if ($('#magazineGrid').datagrid('validateRow',editIndex)) {
var ed = $('#magazineGrid').datagrid('getEditor',{ index: editIndex,field: '数量' });
var number = $(ed.target).numberBox('getValue');
$('#magazineGrid').datagrid('getRows')[editIndex]['数量'] = number;
$('#magazineGrid').datagrid('endEdit',editIndex);
$('#magazineGrid').datagrid('selectRow',editIndex);
editIndex = undefined;
return true;
} else {
return false;
}
}

列格式化输出 formatter

在列的配种中设置formatter

使用工具栏

使用CardView效果

cardView效果是这样的:

cardView的代码

' + rowData[fields[i]] + '

'); } cc.push('
'); } cc.push('

cardView其实是使用了datagrid的view配置,重写了其默认的renderRow方法。基于这种实现,我们可以显示更多样式的view。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的jQuery相关文章