相关疑难解决方法(0)

jqGrid:使用多种方法过滤数据

我的要求是显示一个包含多个过滤器的页面以应用于网格数据.

假设我们正在谈论订单,订单具有以下属性

public class Order {
    public int OrderID
    public DateTime OrderDate
    public DateTime ShipmentDate
    public int OrderTotal
    public int OrderStatus
}
Run Code Online (Sandbox Code Playgroud)

在jqgrid对象中,我显示除OrderStatus之外的所有属性

要求是创建一个具有的视图

  • 左边的jqGrid
  • 右边的一个小组

在右侧面板中,用户将看到一个复选框列表,表示每个可能的OrderStatus值,并且他希望使用这两种方法进行搜索(例如,选中"已发货订单"复选框,然后使用大于某个值的金额过滤网格)

我已经multiplesearch:true在jqGrid对象中配置了高级过滤(),我可以创建组合字段和逻辑运算符的复杂过滤器.

有关如何在用户按下搜索按钮时从右侧面板提交数据的任何想法?

更新1:

序言:Oleg样品太棒了但不幸的是不符合我的客户要求:(

@Oleg:我不明白你为什么这么想:

如果数据位于网格之外,您将仅在选定行的右窗格中显示订单详细信息.因此,用户将不太了解数据.

也许我的描述不是那么清楚,但我不会显示任何订单细节.为了更好地阐明我的要求,我修改了您的示例,以显示所需的最终用户界面,如下图所示: UI就像客户想要的那样

客户希望使用两种方法或两者同时过滤网格中的数据:

  • 使用multiplesearch网格本身提供的设施(感谢提到的解决方法)
  • 使用自定义搜索面板(右侧带有复选框的面板)

从功能的角度来看,需求很容易表达:当用户单击复选框或使用本机进行搜索时,multiplesearch我应该将值发布到服务器,包括复选框状态.

总结一下,我应该:

  • 通过本机发布帖子时添加复选框状态 multiplesearch
  • multiplesearch当用户单击复选框时添加当前状态(如果有)

有没有办法做到这一点?

asp.net asp.net-mvc search jqgrid jqgrid-asp.net

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

jqgrid中是否有api添加高级过滤器来发布数据?

我看到在这段代码中,您可以在javascript中预设postdata过滤器.

postData: {
   filters:'{"groupOp":"AND","rules":['+
    '{"field":"invdate","op":"gt","data":"2007-09-06"},'+
    '{"field":"invdate","op":"lt","data":"2007-10-04"},'+
    '{"field":"name","op":"bw","data":"test"}]}'
}
Run Code Online (Sandbox Code Playgroud)

是否有任何API可以让你建立它.就像是:

jqgrid("#grid").addPostDataFilters("AND");
jqgrid("#grid").addFilteritem("field", "cn", "value");
jqgrid("#grid").addFilteritem("field1", "eq", "value2");
Run Code Online (Sandbox Code Playgroud)

帮助生成顶部postdata过滤器代码??

我试过这个,但它似乎不起作用:

.jqGrid("setGridParam", { editurl: "/Project/UpdateMe",
         ondblClickRow: function (rowid) {
             editProject(rowid); // window.location.href="/Project/Detail/"+rowid;
         }
});

var grid = $("#grid");
var f = { groupOp: "AND", rules: [] };
f.rules.push({ field: "Name", op: "cn", data: "volat" });
grid.p.search = f.rules.length > 0;
$.extend(grid.p.postData, { filters: JSON.stringify(f) });
Run Code Online (Sandbox Code Playgroud)

更新:

我现在有这个工作(感谢Oleg)但是,如果某个原因,查找按钮有些空白(即使我认为我有一个高级过滤器设置)我添加了一张图片

在此输入图像描述

jquery jqgrid

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

如何在页面重新加载时保留jqGrid中的搜索过滤器?

我找到了许多接近我需要的讨论,这个问题是最接近的 - 如何在jqGrid的请求中将postData._search设置为true?.

因为我正在努力解决几乎相同的问题,并且无法让它工作 - 我想在jqGrid的初始加载期间设置"搜索"和"过滤器" - 比如,在页面重新加载时,我有我的存储在会话中的过滤器 - 我尝试了我在Oleg的例子中找到的所有东西 - 它只是不起作用!

这就是我想要做的 -

loadBeforeSend: function (xhr) {
    var grid = jQuery('#' + block_id);
    var postData = grid.jqGrid('getGridParam','postData');
    jQuery.extend(postData,{filters:MyFilters});
    grid.jqGrid('setGridParam', {search: true, postData: postData});
    console.log(grid.jqGrid('getGridParam','postData'));
}
Run Code Online (Sandbox Code Playgroud)

控制台打印输出显示过滤器已就位,但_search仍为false,即使没有过滤器,实际的Post也会被发送:

_search   false
block_id  report_block_1table
nd        1297451574526
page      1
rows      25
sidx      id
sord      desc
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用完全相同的代码 - 添加

grid.trigger("reloadGrid");
Run Code Online (Sandbox Code Playgroud)

line - 进入某个按钮的onClickButton函数,然后点击按钮 - 一切正常; 但我需要让它在"页面重新加载"上工作!

有任何想法吗?这让我疯狂...

javascript jquery jqgrid

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

可以使jqGrid搜索框留在页面上?

现在,我必须单击jqGrid搜索图标以弹出搜索框.我想要做的是始终在网格上方(而不是弹出窗口)打开搜索框.我在他们的演示中没有看到任何东西,但我希望有人已经完成它或知道如何.

javascript search jqgrid

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