2012-09-26 44 views
2

我正在学习jqGrid,希望能够最终将其连接到Redis数据库。作为第一步,我正在使用本地数据。这是我必须使用可排序的行(在网格中拖放行)。网格出现并看起来很好,列甚至可以排序,但我不能选择一行并移动它 - 我错过了什么?仅仅是因为数据是本地的?jqGrid支持使用本地数据拖放行吗?

css和js文件加载没有问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>My First Grid</title> 

<link rel="stylesheet" type="text/css" media="screen" href="themes/redmond/jquery-ui-1.8.23.custom.css" /> 
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" /> 

<script src="js/jquery-1.8.0.min.js" type="text/javascript"></script> 
<script src="js/jquery-ui-1.8.23.custom.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 
    jQuery("#mytable").jqGrid({ 
     datatype:"clientSide", 
     data:[ {"number": 1, "segment":"frontmatter", "name": "chap0"}, 
      {"number": 2, "segment":"mainmatter", "name": "chap1"}, 
      {"number": 3, "segment":"backmatter", "name": "chap2"}, 
      ], 
     colNames:['Chapter Name', 'Chapter Number', 'Document Segment'], 
     colModel:[ 
       {name:'name'}, 
       {name:'number', sorttype:'number'}, 
       {name:'segment'}, 
       ], 
     autowidth:true, 
     height:'200', 
     sortname: 'number', 
     viewrecords: true, 
     caption: 'My first grid', 
     altRows:true, 
    }); 
}); 
jQuery("#sortrows").jqGrid('sortableRows'); 
</script> 

</head> 
<body> 

<table id="mytable"></table> 
</body> 
</html> 

回答

5

是的,jqGrid支持sortableRows与本地数据。 The demo,这只是从the answer演示的副本,使用jqGrid 4.4.1,它的工作原理。

您发布的代码有两个小的,但重要的错误:

  • 您使用jQuery("#sortrows").jqGrid('sortableRows');,但你和其他id创建网格:jQuery("#mytable")。所以,你必须改变"#sortrows""#mytable"
  • 你要招行jQuery("#mytable").jqGrid('sortableRows');$(document).ready(function(){});。您当前的代码调用sortableRows之前网格创建,所以它不会工作。
+0

这就是问题!第一个只是一个错字,但第二个问题是我对演示的误解。现在它工作了! – Tim

+0

@Tim:不客气!最重要的是,您的代码现在可以工作。 – Oleg

+0

这正是我期待的。我在例子中看到复选框没有响应。我可以使用工作按钮还有柱子吗? –