相关疑难解决方法(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中的搜索过滤器?

我找到了许多接近我需要的讨论,这个问题是最接近的 - 如何在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清除搜索条件

目前我已启用网格设置并启用搜索.当我运行搜索时,一切正常,我可以将好数据返回到网格.我看到URL上的"_search"参数设置为"true",一切都很好.

但是,当完成搜索并且数据不再相关时,我想重新加载网格以显示那里的先前数据(初始页面加载上显示的数据).我做了一个函数来调用"trigger("reloadGrid")"方法,但是只发送相同的数据,而"_search"仍设置为"true".

有没有办法清除搜索请求数据,只是重新加载页面加载上显示的初始数据或至少将"_search"值设置回"false",以便我可以检查它?目前显示原始数据的唯一方法是重新加载页面.

search jquery jqgrid

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

jqGrid客户端搜索

我想通过JavaScript手动将搜索应用到我的jqGrid.我在这里尝试了一个指南,但似乎无法让它完全正常工作.在网格设置中,我有一个名为'error_column'的列,我想在搜索字符串'Test'时执行搜索.

这是我到目前为止:

var filter = { "field": "error_column", 'oper': 'eq', "data": 'Test' };
$("Grid2").jqGrid('setGridParam', { search: true, postData: { filters: filter} })
$("Grid2").trigger('reloadGrid');
Run Code Online (Sandbox Code Playgroud)

当我单击这个绑定的按钮时,没有任何反应,它不会导致错误.

编辑 以下是初始化网格的代码:

jQuery("#Grid2").jqGrid({
    datatype: "local",
    height: 250,
    colNames: ['NewSubscriberID', 'Conflicting Subscriber ID', 'Error Field', 'Error Message'],
    colModel: [
        { name: 'new_subscriber_id', index: 'new_subscriber_id', width: 120},
        { name: 'conflicting_subscriber_id', index: 'conflicting_subscriber_id', width: 170},
        { name: 'error_column', index: 'error_column', width: 90, sorttype: "text", search: true},
        { name: 'error_type', index: 'error_type', width: 145}
    ],
    loadonce: true
    }); …
Run Code Online (Sandbox Code Playgroud)

client-side jqgrid

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

如何在jqGrid中的请求中将postData._search设置为true?

虽然我已经能够以编程方式添加自己的帖子数据,但我似乎无法弄清楚如何_search: true在请求中发送此代码.

var data = grid.jqGrid("getGridParam", "postData");
data._search = true;
data.searchString = id.toString();
data.searchOper = "eq";
data.searchField = "userid";
grid.jqGrid("setGridParam", { "postData": data });
grid.trigger("reloadGrid");
Run Code Online (Sandbox Code Playgroud)

这些字段是正确添加的,但是_search的某处似乎设置为false,因为每个请求都将其设置为false.为了让它"真实",我还有其他一些事情需要做吗?我正在运行工具栏搜索,但大多数情况下,当调用此代码时,没有输入任何内容,并且我的服务器上的大量实用程序代码在处理搜索之前检查_search.

javascript jqgrid

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