Jquery 将客户端上的数据添加到Jqgrid

Jquery 将客户端上的数据添加到Jqgrid,jquery,jquery-plugins,jqgrid,jqgrid-asp.net,Jquery,Jquery Plugins,Jqgrid,Jqgrid Asp.net,我使用Jqgrid来显示一些数据,使用DataType作为local,我不想发回服务器并返回jsonString和要绑定的数据。我将Json字符串传递给客户端,并使用addRowData逐个添加数据。如果由于我在每个单元格中拥有的信息,数据的数量很大,那么用户似乎需要花费相当长的时间 for (var i = 0; i < gridData.length; i++) jQuery("#jqgInventory").jqGrid('addRowData', i + 1,

我使用Jqgrid来显示一些数据,使用DataType作为local,我不想发回服务器并返回jsonString和要绑定的数据。我将Json字符串传递给客户端,并使用addRowData逐个添加数据。如果由于我在每个单元格中拥有的信息,数据的数量很大,那么用户似乎需要花费相当长的时间

   for (var i = 0; i < gridData.length; i++)
       jQuery("#jqgInventory").jqGrid('addRowData', i + 1, JSON.parse(gridData[i]));
for(var i=0;i
是否有其他方法将数据绑定到jqgrid,例如,只需将JsonString作为数据源提供给它,它将更快地绑定数据或提供任何其他建议

注意:使用数据类型作为Json并设置postrl将比上述方法工作得更快

请帮忙! 提前感谢,,
Alaa

这句话直接来自jqGrid文档:“存储传递到网格的本地数据的数组。如果您想加载数组数据,可以直接指向此变量。它可以取代addRowData方法,后者在相对大数据方面速度较慢。”。这正是你所说的

请看这里:

以下是您的工作示例:

您只需输入以下选项:

data: my_data

其中,
my_data
是信息数组。

我同意Jeffery_风的另一个回答。他不仅写了他推荐的选项的名称:
数据
参数
。必须补充一点,即应该使用
gridview:true
选项,而不要使用回调

为了理解:使用
addRowData
是填充网格最慢、最无效的方法。最大的问题是,如果在页面上插入元素或更改元素,则至少所有现有元素的位置必须由web浏览器重新计算。在页面上放置的元素越多,插入下一个元素的速度就越慢

解决问题的方法主要有两种:

  • 使用
    DocumentFragment
    准备DOM元素的分离层次结构,然后将片段放在页面上的一个操作中
  • 您可以将所有或大部分更改的内容创建为表示HTML片段的字符串,并使用
    innerHTML
    属性在页面上的一个操作中放置许多元素
jqGrid使用第二种方法。使用
gridview:true
获得行为非常重要。因此,建议采用以下方法填充本地网格:

  • datatype:'local'
    data
    参数与数据的用法。输入
    数据
    参数值的标准格式是带有行项目的数组。每个项都具有相同的属性,如
    colModel
    name
    属性的值。此外,每个项目都应该有
    id
    属性,该属性定义了“rowid”-网格
    元素(行)的id。如果您有其他格式的输入数据,则必须使用相应的参数来描述数据的格式
  • 使用指定输入数据的
    datatype:'jsonstring'
    datastr
    参数。
    datastr
    参数的值可以是JSON字符串或具有相同内容的JavaScript对象。因此,如果将数据作为对象,则不需要使用
    JSON.stringify
    将其转换为JSON字符串。您还可以使用与
    数据类型:'json'
    相同的格式

数据
参数插入数据(在
数据类型:'local'
的情况下)和
数据TR
参数插入数据(在
数据类型:'jsonstring'
的情况下)的主要区别如果使用
数据
参数,则输入数据将按jqGrid排序,如果使用
数据
参数,则输入数据将包含在未排序的数据中。

+1。你的回答是正确的。我建议您仅1)在网格选项列表中包含
gridview:true
,以提高性能;2)添加
height:'auto'
,以提高可见性;3)添加
rowNum
等值较大的选项,如
10000
,或将寻呼机添加到网格中。例如,添加
toppager:true
。不带寻呼机的代码默认只显示前20行(dafault值为
rowNum
),并剪切其余行。感谢提示,是的,我刚刚解决了问题中提出的问题。我还建议使用寻呼机或增加显示的最大行数。我只是从jqgrid示例中选取了这个示例:。在加载数据->数组数据下,将其转换为使用
data
参数。出于某种原因,他们在示例中使用了
addRowData
约定。。。可能已经有一段时间没有更新了。哦,我找到了一个正确的例子,在“3.7版中的新版本”下,它还有一个寻呼机,我将更新小提琴。@jeffery_the_wind非常感谢这些信息,它帮助了lot@jeffery_the_wind当前位置我同意来自的信息有很多缺点。使用
addRowData
的页面等最旧的页面与其他页面混合。顺便说一下,
addRowData
添加的数据将添加到当前页面。“加载数据”/“数组数据”中的页面自年起在
行中出现错误(var i=0;i