1、实现行的上移、下移、
说明:
1.1 通过datagrid生成的表格有固定的格式,比如,表格div的class名是datagrid-view。比如每一行tr都有id和datagrid-row-index属性等。
1.2 在上移和下移以后,我们将移动以后的两行的id和datagrid-row-index属性也必须互换,这样能保证datagrid-row-index=0的行肯定是页面显示的表格的第一行,=1的是第二行等等。将来保存的时候,就是通过取这个属性值找某一行的数据的。
function move(isUp) {
var selections = $dg.datagrid('g
在本文中,我们将探讨如何使用jQuery Easyui的Datagrid组件实现单行的上移和下移功能,并且在操作后保存这些移动的结果。jQuery Easyui Datagrid是一个强大的数据展示工具,它提供了丰富的交互性和自定义选项,使得在网页中创建表格变得简单。
我们来看实现行的上移和下移的机制。Datagrid生成的表格有一套固定的结构,其中重要的两点是:
1. 表格的外层div具有`datagrid-view`的class。
2. 每一行`tr`元素都有`id`和`datagrid-row-index`属性,后者用于标识行的顺序。
当需要执行上移或下移操作时,我们需要交换被移动行的`id`和`datagrid-row-index`属性。这是通过以下步骤完成的:
- 获取当前选中的行(通过`datagrid('getSelections')`)。
- 找到要移动行的索引(`datagrid('getRowIndex')`)。
- 使用`each`遍历选中行,如果要上移,找到前一行(`prev`),反之则找到后一行(`next`)。
- 交换两行的`id`和`datagrid-row-index`属性,然后调整它们在DOM中的位置(使用`insertBefore`或`insertAfter`)。
以下是一个简单的示例函数`move(isUp)`,它接收一个参数`isUp`来决定是上移还是下移:
```javascript
function move(isUp) {
var selections = $dg.datagrid('getSelections');
if (selections.length == 0) { return; }
// ... 上述代码逻辑 ...
}
```
接下来,我们需要保存移动的结果。这涉及到遍历表格,获取每行的主键值,通常是一个唯一标识符。在这个例子中,我们假设商品的主键是`goodsId`。我们可以通过以下方式获取:
- 遍历Datagrid的所有数据行(`getData().rows`)。
- 对于每行,找到对应的`tr`元素,根据`datagrid-row-index`查找。
- 在`td`元素中找到`field='goodsId'`的单元格,然后获取其中`div`的HTML内容,这通常是值的存储位置。
以下是一个保存操作的示例函数`nextStep()`:
```javascript
function nextStep() {
var arrayData = $dg.datagrid('getData').rows;
var $view = $('div.datagrid-view');
// ... 上述代码逻辑 ...
}
```
我们可以通过Ajax将这些ID发送到服务器端进行保存。在实际应用中,`$.ajax`方法会向指定的URL发送请求,携带保存的ID列表,以便服务器更新数据库中的行顺序。
总结来说,实现jQuery Easyui Datagrid的单行上移下移功能,关键在于理解Datagrid的结构和属性,以及如何操作DOM来调整行顺序。同时,保存移动结果需要遍历表格数据,获取并发送主键值。这样的功能扩展了Datagrid的基本操作,使得用户可以自由调整数据视图的顺序,并且能够持久化这些改变。