相关疑难解决方法(0)

持久化jqGrid列首选项

我的ASP.NET MVC 3应用程序上有一些jqGrids,它们有很多列.我在列定义中添加了以下内容,以默认隐藏一些列:

colModel: [
   { name: 'IceCreamID', hidden: true},
   { name: 'RecipeID', hidden: true }
Run Code Online (Sandbox Code Playgroud)

这很好用.这些列在我的网格上不可见.

然后我添加了这个来实现列选择器:

var grid = $('#icecreamGrid');
grid.jqGrid('navButtonAdd', '#icecreamPager',
{ caption: "Columns", buttonicon: "ui-icon-calculator",
  title: "Choose Columns",
  onClickButton: function() {
     grid.jqGrid('columnChooser');
  }
});
Run Code Online (Sandbox Code Playgroud)

太棒了,现在提出了专栏选择器.然后我将以下内容添加到我从未希望在列选择器中显示的列中:

colModel: [
   { name: 'IceCreamID', hidden: true, hidedlg: true},
Run Code Online (Sandbox Code Playgroud)

所以我现在可以隐藏/显示列就好了.现在,您如何坚持这些信息?D B?作为一个cookie?另一种方式?是否有一种首选的方式来存储这种真正是用户偏好的信息,而不是与数据本身相关的信息?


更多信息

根据Oleg在下面的评论,我想提供更多信息.

这里的要点是我有10-15列的网格,可以根据用户的偏好显示.举一个简单的例子,我的一个网格有以下9列:

IceCream|ShortName|HasNuts|SugarAdded|LimitedRun|PromoItem|Facility|FirstRun|LastRun
Run Code Online (Sandbox Code Playgroud)

用户可以根据个人喜好隐藏/显示这9列中的任何一列.

我想要做的是提供一种方法来持久保存特定用户想要查看的列,以便他/她不必在每次显示带有该网格的页面时重新选择这些列.

asp.net-mvc jqgrid asp.net-mvc-3

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

jqGrid过滤器或按日期搜索不工作的客户端

我有一个ASP.NET MVC 3页面.在它上面,我有一个表,我使用来自ajax调用的JSON数据转换为jqGrid.网格具有以下设置:

myGrid = $('#myGrid');
myGrid.jqGrid({
    caption: 'My Grid',
    datatype: 'local',
    data: data.rows,
    height: 250,
    pager: '#myPager',
    viewrecords: true,
    colModel: [
        ...,
        {
            label: 'blah',
            name: 'blah',
            align: 'left',
            sortable: true,
            editable: false,
            width: 85,
            formatter: 'date',
            sorttype: 'date',
            datefmt: 'm/d/Y',
            formatoptions: { srcformat: 'm/d/Y', newformat: 'm/d/Y' }
        },
        ...
    ]
});

// turn on filter toolbar
myGrid.filterToolbar();
Run Code Online (Sandbox Code Playgroud)

data.rows从ajax调用返回.除了一个以外,这种方式都有效.我可以对客户端进行分页,对客户端进行排序,并按照我显示colModel的字段进行搜索.这个'blah'字段是一个日期字段,它以mm/dd/yyyy格式正确显示日期.但是,当我在工具栏中键入类似11/17/2010的内容并按Enter键时,搜索将返回0条记录.

所以我深入研究了jqGrid代码,这是它在搜索之前生成的内容:

{"groupOp":"AND","rules":[{"field":"blah","op":"bw","data":"11/17/2010"}]}
Run Code Online (Sandbox Code Playgroud)

最终,当它遍历每一行并且它评估字段上的操作时,eval(m)&& p.push(this)行,m是这样的:

(String(this.blah).substr(0,10) == String("11/17/2010"))
Run Code Online (Sandbox Code Playgroud)

基本上,在我看来它并不认为该字段是一个日期.它调用parse而不是parseDate.任何人有任何想法如何解决这个问题?我知道搜索服务器端很容易,我可以传递该字符串,解析它,然后bam.但如果可以,我想留在客户方面.我能够在Oleg和Tom提出的一些样本中复制这个,所以这是一个问题,或者我在配置中遗漏了一些东西......

asp.net-mvc jquery json jqgrid asp.net-mvc-3

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

默认情况下,在jqGrid中使用工具栏搜索在列的中间搜索

在阅读了jqGrid wiki之后(并举例说明:jqGrid中包含隐藏字段的不区分大小写搜索),我无法找到我想要做的事情.

是否有任何搜索选项可以在列中的任何位置启用搜索(自动通配符).

如果该列包含"Apple Iphone",我可以使用搜索"iphone"找到它.

SQL等价物将是 select * from table where lower(columnX) like '%iphone%';

search wildcard jqgrid

4
推荐指数
1
解决办法
7320
查看次数

jqGrid:使用beforeProcessing填充filterToolbar选择框

我在filterToolbar中填充了三个下拉框,其中包含来自服务器的数据,如下面的prodValues,envValues和typeValues声明中所示.我想更改我的代码以在beforeProcessing事件中执行此操作,并从主网格数据转储中提取值.我已经让服务器发送了我认为正确的json响应来执行此操作:

{
   "pVals":"Product1:Product1;Product2:Product2;etc:etc",
   "eVals":"??:??;Dev:Dev;PreProd:PreProd;Prod:Prod;Test/QA:Test/QA",
   "tVals":"??:??;App:App;Service:Service;SQL:SQL;Web:Web",
   "page":0,
   "total":0,
   "records":537,
   "rows":[ /* many rows */
    ]
}
Run Code Online (Sandbox Code Playgroud)

如何在beforeProcessing事件中挑选pVals,eVals和tVals字符串并将它们粘贴到相应的filterToolbar选择框中?

这是我的网格代码供参考,我破解的尝试解决了这个问题:

$(function () {
            var grid = $("#PSGrid");

            var pVals, eVals, tVals;

            // get values from Products table
            var prodValues = $.ajax({
                url: "jqGridHandler.ashx?oper=pVals",
                async: false,
                success: function (data) {

                }
            }).responseText;

            // get values from Environments table
            var envValues = $.ajax({
                url: "jqGridHandler.ashx?oper=eVals",
                async: false,
                success: function (data) {

                }
            }).responseText;

            // get values from ServerTypes table
            var typeValues = $.ajax({
                url: "jqGridHandler.ashx?oper=tVals", …
Run Code Online (Sandbox Code Playgroud)

asp.net jquery jqgrid

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

在filtertoolbar上设置默认值

我正在寻找一种方法来设置过滤器工具栏中多列的默认值JSON.

我知道我可以defaultvalue在searchoptions中使用该选项,但我希望能够使用a设置过滤器json string.

我的json字符串:

    {"groupOp":"AND","rules": [{"field":"PART_AFFILIATION","op":"eq","data":"PART-M"},{"field":"STATUS","op":"eq","data":"Active"}]}
Run Code Online (Sandbox Code Playgroud)

jqgrid

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

标签 统计

jqgrid ×5

asp.net-mvc ×2

asp.net-mvc-3 ×2

jquery ×2

asp.net ×1

json ×1

search ×1

wildcard ×1