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

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


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


public class Order {

    public int OrderID

    public DateTime OrderDate

    public DateTime ShipmentDate

    public int OrderTotal

    public int OrderStatus

}

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


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


左边的jqGrid

右边的一个小组

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


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


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


更新1:


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


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


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


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


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


使用multiplesearch网格本身提供的设施(感谢提到的解决方法)

使用自定义搜索面板(右侧带有复选框的面板)

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


总结一下,我应该:


通过本机发布帖子时添加复选框状态 multiplesearch

multiplesearch当用户单击复选框时添加当前状态(如果有)

有没有办法做到这一点?


喵喔喔
浏览 1765回答 3
3回答

一只名叫tom的猫

就像后续跟进一样,我在这里包含了另一种方法,我发现它可以获得相同的结果。该方法假设使用postDatajqGrid 的参数。在方法内部,我定义了各种功能,用于验证复选框的当前状态,并将参数发送到服务器,可用于过滤。这是一个样本postData: {    pending: function () {        if ($("#cb_pending").is(':checked')) {            return true;        } else {            return false;        }    }}这个解决方案相对于Oleg描述的解决方案的优点是可以在服务器端使用混合逻辑运算符(AND / OR),而使用Oleg答案中的过滤器部分是不可能的。快乐的编码!
打开App,查看更多内容
随时随地看视频慕课网APP