jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法

  一般的,一个jqGrid的基本属性有一下几个常用的。

  

复制代码 代码如下:

  $("#id").jqGrid({

  url: "",

  datatype: "local",

  postData: { strJson: Data },

  mtype: "post",

  height: 45,

  width: 450,

  rowNum: rum, //每页的记录数

  pgtext: "第{0}页 共{1}页",

  pgbuttons: true,

  autoheight: true,

  rownumbers: false, // 是否显示行数

  pgbuttons: true, // 分页按钮是否显示

  pginput: true, // 是否允许输入分页页数

  scrollrows: false, // 是否显示行滚动条

  viewrecords: true, // 是否显示总记录数

  multiselect: true, // 是否显示复选框

  recordpos: "left", // 记录数显示位置

  sortorder: "asc", //排序方式

  pager: "#Pager"

  )}

  在初始化的时候,若不想执行表格的初始化方法,则需要设置url为空,datatype设置为"local",否则会有js错误,导致页面上的button按钮不起作用。

  如果需要在开始时候执行表格的初始化,则需要设置url的值,在.net mvc架构下,即“/controller/action/”这样的格式,第一个"/"是必须的,否则不能进入后台的action中,最后一个“/”好像不是必需的,一般都加上。在设置了url后,还要注意的问题就是datatype要与postData的数据类型相匹配,否则会有错误。例如datatype:"json",那么postData需要传的是json对象。

  如果想动态的执行表格的初始化,那么刚开始可以不用设置url值,datatype设置为"local"(否则报错)。然后动态的触发jqGrid的初始化action。

  比如,在一张表中双击后后触发,代码如下:

  

复制代码 代码如下:

   //双击行事件

  ondblClickRow: function () {

  courseData = JSON.stringify({

  stuNum: studentNum,

  rowNum: rum,

  page: 1

  });

  jQuery("#courseInfoGrid").jqGrid("setGridParam", {

  url: "/PersonalArrearsSettlement/GetStudentCourseInfo", //设置表格的url

  datatype: "json", //设置数据类型

  postData: { strJson: courseData }

  });

  这样就可以动态的显示表格的数据了。