关于“jQWidgets jqxSortable dropOnEmpty属性”的详细讲解,以下是完整攻略:
1. 什么是jQWidgets jqxSortable
jQWidgets是一个基于jQuery的商业级JavaScript UI框架,包含多个常用控件,如按钮、输入框、日历、表格等。其中,jqxSortable是jQWidgets中的一个排序控件,可以让用户方便地重新排列一个列表。
2. dropOnEmpty属性的作用
jqxSortable控件中的dropOnEmpty属性,表示在拖拽过程中,如果目标列表为空,拖拽的元素是否可以被放置。
- 如果dropOnEmpty为true,那么无论目标列表是否为空,拖拽的元素都可以被放置,并且放置后,拖拽的元素会成为空列表的第一项。
- 如果dropOnEmpty为false,那么如果目标列表为空,拖拽的元素无法被放置。
3. dropOnEmpty使用示例
示例一
下面是一个简单的实现,在列表之间拖拽元素的示例:
<!DOCTYPE html>
<html>
<head>
<title>jqxSortable dropOnEmpty demo</title>
<script type="text/javascript" src="./jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxlistbox.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxsortable.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var source = [
'Item 1',
'Item 2',
'Item 3',
'Item 4',
'Item 5'
];
$('#sortable1, #sortable2').jqxSortable({
connectWith: '#sortable1, #sortable2',
dropOnEmpty: true
});
$('#sortable1').jqxListBox({ source: source });
$('#sortable2').jqxListBox();
});
</script>
</head>
<body>
<div id="sortable1" style="float:left; margin-right:10px;"></div>
<div id="sortable2"></div>
</body>
</html>
在这个示例中,我们定义了两个列表,都是使用jqxListBox控件实现的,其中一个已经被初始化为第一个列表,并且使用jqxSortable控件启用了拖放功能,同时,我们将dropOnEmpty设置为true,这意味着任何时候,都可以无条件地将项目放置在空列表中。
示例二
下面是一个实现使用jqxTreeGrid控件实现拖拽排序功能的示例:
<!DOCTYPE html>
<html>
<head>
<title>jqxSortable dropOnEmpty demo</title>
<script type="text/javascript" src="./jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxgrid.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxgrid.treegrid.js"></script>
<script type="text/javascript" src="./jqwidgets/jqxsortable.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var data = [
{ "id": "1", "name": "Item 1", "parentid": "0" },
{ "id": "2", "name": "Item 2", "parentid": "0" },
{ "id": "3", "name": "Item 3", "parentid": "0" },
{ "id": "4", "name": "Item 4", "parentid": "0" },
{ "id": "5", "name": "Item 5", "parentid": "0", "subItems": [
{ "id": "6", "name": "Item 6", "parentid": "5" },
{ "id": "7", "name": "Item 7", "parentid": "5" },
{ "id": "8", "name": "Item 8", "parentid": "5" }
]}
];
var source = {
datatype: "json",
datafields: [
{ name: 'id' },
{ name: 'parentid' },
{ name: 'name' },
{ name: "subItems" }
],
id: 'id',
localdata: data
};
var dataAdapter = new $.jqx.dataAdapter(source);
var columns = [
{ text: 'Name', datafield: 'name' }
];
$("#treeGrid").jqxTreeGrid({
source: dataAdapter,
columns: columns,
showHeader: true,
sortable: true,
filterable: true,
groupable: true,
pageable: true,
pageSize: 15,
pagerMode: "advanced",
pagerButtonsCount: 10
});
$("#treeGrid").jqxSortable({
placeHolderTemplate: $("#treeGrid > tbody > tr:first-child td"),
dropOnEmpty: true
});
});
</script>
</head>
<body>
<div id="treeGrid"></div>
</body>
</html>
在这个示例中,我们使用了jqxTreeGrid控件来实现树形结构;我们设置了一个数据模型,然后使用dataAdapter进行数据绑定。我们启用了拖拽功能,同时,我们将dropOnEmpty设置为true,这意味着可以将一个项目拖到空的位置。
4. 结论
dropOnEmpty是一个布尔属性,设置为true时,任何时候都可以将项置于空列表中,设置为false时,只有当列表不为空时,才能将项置于该列表中。在使用jqxSortable控件时,这个属性可以帮助我们实现更加灵活和定制化的控件,为用户提供更好的使用体验。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQWidgets jqxSortable dropOnEmpty属性 - Python技术站