相关疑难解决方法(0)

如何使用内置的搜索/过滤器框过滤jqGrid数据

我希望用户能够在不使用内在搜索框的情况下过滤网格数据.

我为date(from和to)创建了两个输入字段,现在需要告诉网格将其作为过滤器,然后请求新数据.

伪造网格数据的服务器请求(绕过网格)并将网格数据设置为响应数据不会起作用 - 因为一旦用户尝试重新排序结果或更改页面等,网格将请求新数据从服务器使用空白过滤器.

我似乎无法找到网格API来实现这一点 - 有没有人有任何想法?谢谢.

search jquery filter jqgrid

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

持久化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万
查看次数

loadComplete和gridComplete事件有什么区别?

这个问题源于我看了后这个答案奥列格和演示格架在里面.

gridComplete:

在将所有数据加载到网格中并且所有其他进程完成后,将触发此操作.此事件也会独立于数据类型参数并在对分页等进行排序后触发.

loadComplete:

每个服务器请求后立即执行此事件.data响应中的数据取决于数据类型grid参数

从那些文档中我理解gridComplete在绘制网格结束时loadComplete触发,并在jqGrid完成与后端的通信后触发.

所以我想知道 - 为什么在演示中,loadComplete用于改变细胞的颜色而不是gridComplete

javascript datagrid jqgrid

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

jqgrid服务器端错误消息/验证处理

在我的json回复中,我有'STATUS'和'errors'属性.如何在jqGRid中使用此错误属性.解析所有错误并在对话框中显示它们.

基本上只需检查,如果状态:'ERROR'然后显示所有错误.

谢谢!

javascript jquery jqgrid

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

如何为jqGrid的ajax对象设置请求标头

我需要将'Authorization'请求标头设置为httpXMLRequest.在网格定义中,我尝试通过ajaxGridOptions设置如下:

 ajaxGridOptions: { Authorization: 'Basic YWRtaW5AZGVmYXVsdC5jb206YWRTwa6=' } 
Run Code Online (Sandbox Code Playgroud)

并使用beforeSend事件,如下所示:

   beforeSend:  function(jqXHR, settings) {
    jqXHR.setRequestHeader("Authorization", 'Basic YWRtaW5AZGVmYXVsdC5jb206YWRTwa6=');
                    }
Run Code Online (Sandbox Code Playgroud)

以上都不适合我.什么是正确的语法?

谢谢!!

ajax jqgrid

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

如何在jqgrid中保留当前行

如果再次打开网格或刷新页面,如何预先确定当前行?

持久化jqGrid列首选项中的答案描述了如何保持列宽和其他一些参数.

在这个答案演示中,我点击了一行并按了F5.之前单击的行未突出显示.如何在本地存储中保存/恢复当前行?

更新

如果在应用程序中修改了jqGrid列结构,并且用户再次从浏览器打开应用程序,则restorecolumnstate会创建无效的colmodel,其中缺少某些元素.这会导致refreshSearchingToolbar中出现异常,该异常假定存在所有colmodel元素.

如何解决这个问题?在这种情况下如何设计修改后的colmodol而不是恢复colmodel?或者应该restoreColumnState更新colModel以便创建正确的数组?

**更新2**

如果myColumnsState.permutation包含空值,则$grid.jqGrid("remapColumns", myColumnsState.permutation, true)创建无效的colmodel.以下是在remapColumns调用之前和之后立即从VS调试器截取的屏幕截图

在此输入图像描述

后:

后

我通过chaning代码来解决这个问题

    if (isColState && myColumnsState.permutation.length > 0) {
        var i, isnull = false;
        for (i = 0; i < myColumnsState.permutation.length; i = i + 1) {
            if (myColumnsState.permutation[i] == null) {
                isnull = true;
                break;
            }
        }
        if (!isnull) {
            $grid.jqGrid("remapColumns", myColumnsState.permutation, true);
        }
Run Code Online (Sandbox Code Playgroud)

这是最佳解决方案吗?

jqgrid

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

超时错误捕获并在jqGrid中显示

是否有任何超时选项我可以在jqGrid中设置显示错误,如果服务器处理发生任何延迟,超过设定值?

jqgrid

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