相关疑难解决方法(0)

是否应该将jqGrid的使用addJSONData替换为setGridParam()和trigger('reloadGrid')的用法?

我最近写了一个问题" jqGrid显示默认"加载"更新表/自定义更新时的消息 "的答案.在编写答案时,我想:为什么他使用addJSONData()函数刷新网格中的数据而不是相对于setGridParam()更改URL 并刷新jqGrid数据相对于trigger('reloadGrid')?一开始我想推荐使用'reloadGrid',但在考虑了这一点后,我明白我不太确定最好的方法是什么.至少,我不能用两句话解释为什么我更喜欢第二种方式.所以我认为它可能是一个有趣的讨论主题.

确切地说:我们有一个典型的情况.我们有一个网页,其中包含至少一个jqGrid和一些其他控件,如组合框(选择),复选框等,这使用户可以更改jqGrid中显示的信息的范围.通常我们定义一些事件处理程序jQuery("#selector").change(myRefresh).keyup(myKeyRefresh) ,我们需要根据用户的选择重新加载jqGrid容器.

在阅读并分析来自其他用户输入的信息后,我们可以至少以两种方式刷新jqGrid容器:

  1. 调用$.ajax()手动然后在成功内部或完成$.ajax调用句柄jQuery.parseJSON()(或eval),然后调用jqGrid的addJSONData函数.我在stackoverflow.com上发现了很多使用addJSONData的例子.
  2. 根据用户的输入更新jqGrid的URL,将当前页码重置为1,并可选择更改网格的标题.所有这些都可以通过setGridParam()和可选的setCaption() jqGrid方法完成.最后调用网格的触发器('reloadGrid')函数.要构造url,顺便说一下我主要使用jQuery.param函数来确保,我已经为encodeURIComponent正确打包了所有url参数.

我希望我们讨论这两种方式的优缺点.我目前使用第二种方式,所以我将从这一方面的优势开始.

可以说:我调用现有的Web服务,将接收的数据转换为jqGrid格式并调用addJSONData.这就是我使用addJSONData方法的原因!

好的,我会选择另一种方式.jqGrid可以直接在Web服务上调用并在网格内填充结果.有很多jqGrid选项,允许您自定义此过程.

首先,可以删除或重命名发送到服务器关于任何标准参数prmNames的jqGrid的选项或对于添加任何额外的参数POSTDATA选项(参见http://www.trirand.com/jqgridwiki/ doku.php?id = wiki:options).$.ajax通过定义serializeGridData()函数(jqGrid的另一个选项),可以在jqGrid发出相应请求之前立即修改所有构造的参数.更重要的是,可以$.ajax通过设置jqGrid的ajaxGridOptions选项来更改每个参数.我用ajaxGridOptions: {contentType: "application/json"}例如作为一般设置$.jgrid.defaults.该ajaxGridOptions选项是非常强大的.对于ajaxGridOptions …

jquery jqgrid

28
推荐指数
1
解决办法
9918
查看次数

设置jQuery jqGrid执行的请求的内容类型

我使用的是最新版本的jqGrid:3.6.4

这似乎是一个简单的问题(或者至少它在我花了几个小时之前做过):

当网格向服务器发送请求(到控制器操作)时,其内容类型始终为:

application/x-www-form-urlencoded; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

我希望它是:

application/json; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

但是我找不到设置内容类型的方法(例如,没有像$ .ajax调用那样的contentType选项).

所以只是为了澄清,我不是问如何在jQuery服务器请求上设置内容类型,而是专门使用jqGrid,它没有提供明显的选项来执行此操作.

谢谢,奈杰尔.

更新: Oleg的回复修复解决了它.

以下是网格的选项设置:

jQuery("#ContactGridList").jqGrid({
        url: '/ContactSelect/GridData/',
        datatype: 'json',
        ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
        mtype: 'POST',
        ...
Run Code Online (Sandbox Code Playgroud)

jquery content-type jqgrid

22
推荐指数
1
解决办法
2万
查看次数

在JQGrid中映射JSON数据

我使用jqGrid 3.6.4和jquery 1.4.2.在我的示例中,我正在遵循json数据格式,我想将这些json数据映射到jqgrid的行中

{
"page": "1",
"total": 1,
"records": "6",
"rows": [
    {
        "head": {
            "student_name": "Mr S. Jack ",
            "year": 2007

        },
        "sub": [
            {
                "course_description": "Math ",
                "date": "22-04-2010",
                "number": 1,
                "time_of_add": "2:00",
                "day": "today"
            }
        ]

      }
]
}
Run Code Online (Sandbox Code Playgroud)

我的jqgrid代码如下

jQuery("#"+subgrid_table_id).jqGrid({
url:"http://localhost/stud/beta/web/GetStud.php?sid="+sid,
dtatype: "json",
colNames: ['Stud Name','Year','Date'.'Number'],
colModel: [ {name:'Stud Name',index:'student_name', width:100, jsonmap:"student_name"},
{name:'Year',index:'year', width:100, jsonmap:"year"},
{name:'Date',index:'date', width:100, jsonmap:"date"},
{name:'Number',index:'number', width:100, jsonmap:"number"}
],
height:'100%',
jsonReader: { repeatitems : false, root:"head" },
});
Run Code Online (Sandbox Code Playgroud)

所以现在问题是我的数据,即student_name和year在"head"下,jqgrid可以找到这两个字段.同时其他两个列值,即日期和数字位于"子"下,甚至那些列我无法用jqgrid映射它

请帮助我如何在JQGrid中找到这些属性.

谢谢

json jqgrid jqgrid-php subgrid

7
推荐指数
1
解决办法
2万
查看次数

jqGrid tableToGrid"options"参数

基本

大家好,我已经看到tableToGrid方法(由Peter Romianowski)定义为tableToGrid(selector, options)jqGrid wiki,但无法找到任何有文档的options

有谁知道这些或在哪里找到它们?编辑:谢谢奥列格,解决了!

更多

我实际上要做的是将生成的jqGrid包含在a中form,这将提交checkbox表的列中的值.我的问题是该tableToGrid方法似乎是namecheckbox元素中删除属性,因此它们没有与表单发布一起提交.

html checkbox jquery jqgrid form-post

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

jqgrid ×4

jquery ×3

checkbox ×1

content-type ×1

form-post ×1

html ×1

jqgrid-php ×1

json ×1

subgrid ×1