easyui datagrid选择数据行置顶置底效果

  easyui datagrid选择数据行,点击置顶或者置底按钮,将选中的数据行放到第一位或者最后。

思路就是获取选中的数据行数据行,删除数据行,再insertRow或者appendRow重新添加就行。

注意:getSelections获取到的集合兑源数据源的引用,会同时删除数据源,所以要自己clone一下选中的数据行,否则无法添加。

  本示例居于/jquery-easyui-1.4.4/demo/datagrid/checkbox.html修改

    <form id="gridForm">
        <table id="dg" class="easyui-datagrid" title="CheckBox Selection on DataGrid" style="width:700px;height:250px"
               data-options="rownumbers:true,singleSelect:true,url:'datagrid_data1.json',method:'get',idField:'itemid'">
            <thead>
                <tr>
                    <th data-options="field:'itemid',checkbox:'true'"></th>
                    <th data-options="field:'productid',width:100">Product</th>
                    <th data-options="field:'listprice',width:80,align:'right'">List Price</th>
                    <th data-options="field:'unitcost',width:80,align:'right'">Unit Cost</th>
                    <th data-options="field:'attr1',width:220">Attribute</th>
                    <th data-options="field:'status',width:60,align:'center'">Status</th>
                </tr>
            </thead>
        </table>
    </form>
	<div style="margin:10px 0;">
		<span>Selection Mode: </span>
		<select onchange="$('#dg').datagrid({singleSelect:(this.value==0)})">
			<option value="0">Single Row</option>
			<option value="1">Multiple Rows</option>
		</select><br/>
		SelectOnCheck: <input type="checkbox" checked onchange="$('#dg').datagrid({selectOnCheck:$(this).is(':checked')})"><br/>
		CheckOnSelect: <input type="checkbox" checked onchange="$('#dg').datagrid({checkOnSelect:$(this).is(':checked')})">
	</div>
    <input type="button" value="置顶" onclick="setTopOrBottom(true)" /> <input type="button" value="置底" onclick="setTopOrBottom()" />
    <script>
        function setTopOrBottom(isTop) {
            var rows = $('#dg').datagrid('getSelections'),newRows=JSON.parse(JSON.stringify(rows));
            if (rows.length == 0) { alert('请选择要操作的数据行!'); return; }
           
            for (var i = rows.length - 1; i >= 0; i--) {
                $('#dg').datagrid('deleteRow', $('#dg').datagrid('getRowIndex', rows[i]));
            }
            
            for (var i = newRows.length - 1; i >= 0; i--) {
                if (isTop) $('#dg').datagrid('insertRow', { index: 0, row: newRows[i] });
                else $('#dg').datagrid('appendRow', newRows[i]);
            }
        }
    </script>

 


原创文章,转载请注明出处:easyui datagrid选择数据行置顶置底效果

评论(0)Web开发网
阅读(18)喜欢(0)不喜欢(0)easyui开发技巧