如何在不可拖动的行之间放置jqgrid行
我有一个网格,如何在不可拖动的行之间放置jqgrid行,jqgrid,Jqgrid,我有一个网格, 我可以上下拖动行 我还做了必要的安排,让用户无法拖动“test4”和“test5”行 问题:一切都很完美,但当我试图将行放在“test4”和“test5”行之间时,我无法做到这一点 看起来,当有2个不可拖动的行时,我们不能在它们之间放置一行 有没有办法,我们可以放弃???谢谢 这是代码 <html> <head> <link rel="stylesheet" type="text/css" href="http://ajax.googlea
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/redmond/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/css/ui.jqgrid.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/js/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/js/jquery.jqGrid.src.js"></script>
<style type="text/css">
.unsortable {}
</style>
<script type="text/javascript">
$(document).ready(function () {
'use strict';
var mydata = [
{id: "1", name: "test1"},
{id: "2", name: "test2"},
{id: "3", name: "test3"},
{id: "4", name: "test4"},
{id: "5", name: "test5"},
{id: "6", name: "test6"},
{id: "7", name: "test7"}
];
$("#list").jqGrid({
datatype: 'local',
data: mydata,
colNames: [/*'Id', */'Client'],
colModel: [
{name: 'name', index: 'name', width: 200}
],
loadComplete: function (data) {
jQuery("#4",jQuery("#list")[0]).addClass('unsortable');
jQuery("#5",jQuery("#list")[0]).addClass('unsortable');
}
}).jqGrid('sortableRows', { items: '.jqgrow:not(.unsortable)'});
});
</script>
</head>
<body>
<table id="list"><tr><td></td></tr></table>
</body>
</html>
.unsortable{}
$(文档).ready(函数(){
"严格使用",;
var mydata=[
{id:“1”,name:“test1”},
{id:“2”,name:“test2”},
{id:“3”,name:“test3”},
{id:“4”,name:“test4”},
{id:“5”,name:“test5”},
{id:“6”,name:“test6”},
{id:“7”,name:“test7”}
];
$(“#列表”).jqGrid({
数据类型:“本地”,
数据:mydata,
colNames:[/*'Id',*/'Client'],
colModel:[
{name:'name',index:'name',宽度:200}
],
loadComplete:函数(数据){
jQuery(“#4”,jQuery(#list”)[0]).addClass('unsortable');
jQuery(“#5”,jQuery(#list”)[0]).addClass('unsortable');
}
}).jqGrid('sortableRows',{items:'.jqgrow:not(.unsortable)});
});
您似乎使用了我多年前在中发布的旧代码。jqGrid和jqueryui现在有许多新特性
我觉得你的问题很有趣。因此,我创建了一个演示了一种可能的解决方案:
该解决方案的思想是使用jQueryUISortable的cancel
选项,而不是items
(有关更多详细信息,请参阅)
我在我的演示中使用了禁用了ui状态的类,而不是不可排序的,并且我通过使用rowattr,将类分配给特定的项目,这与修改以前在loadComplete
中创建的行的类更有效
var disabledIds=[“4”、“5”];
$(“#列表”).jqGrid({
...
rowattr:函数(项){
如果($.inArray(item.id,disabledIds)>=0){
返回{“类”:“ui状态已禁用”};
}
},
...
});
sortableRows
的主调用如下所示
$(“#list”).jqGrid(“sortableRows”,{cancel:.ui state disabled});
另外,我建议您使用jqGrid as 4.4.1的最新版本。我建议您使用4.9.2(请参阅)。首先非常感谢Oleg提供了这么好的帮助。是的,当我需要在JQGrid上工作时,我总是遵循您的代码。:),只有一件事,我们可以删除已禁用的行的灰显颜色吗?谢谢在我的情况下,我的网格中的第一行将不可拖动,我们是否可以做出安排,以便用户可以在网格的第一行上方放置一行?注意-我的网格将没有分页。谢谢@用户584018:不客气!要删除行的灰显颜色,您只需使用任何其他类作为禁用的
ui状态
,例如虚拟类不可排序
。这是任何一门课。看见我使用ui-state-disabled
让用户看到哪些行是不可移动的。您可以轻松地将可排序行移到不可排序行的上方。在我的演示上试试这个。谢谢!我得到了它。你能帮我更多吗。假设在同一个例子中(网格中只有一个页面),我的第一行是不可排序的,我们可以安排用户不能在上面放置任何可排序的元素吗?最初我写了可以(对不起)谢谢@用户584018:是的,当然!我给你发了两个演示。您可以尝试演示,并看到您可以将任何可排序行放在任何位置,包括存在不可排序行之前的第一个位置。这是使用cancel
选项而不是items
的主要原因。