【问题标题】:JQGrid: Binding JSON data to MultiSelect CheckboxJQGrid:将 JSON 数据绑定到多选复选框
【发布时间】:2011-11-18 23:45:59
【问题描述】:

我让 JQGrid 从 WCF OperationContract 加载数据,分页和排序工作正常。我正在使用“multiselect:true”,以便获得复选框列和选择多行的能力。我已经实现了 gridComplete:、onSelectAll: 和 onSelectRow: 来捕捉复选框何时被选中/取消选中并在分页时保持选中状态。我可以通过另一个 WCF 方法调用将复选框状态保存到数据库。

我不知道该怎么做是为每一行加载保存的复选框状态以及 colModel 中指定的其他字段:。

有什么想法吗?我意识到我可以进行单独的 WCF 服务调用来获取值、循环遍历它们并手动设置状态,但这似乎是一种巨大的浪费并且过于笨拙。

提前致谢。

【问题讨论】:

    标签: wcf json jqgrid


    【解决方案1】:

    最简单的方法,我在阅读您的问题后立即想到我,是在 additional hidden columnhidden: true 属性中的 colModel 列)和里面的复选框。您可以从数据库加载选择状态并填充隐藏的复选框。在loadCompletegridComplete 内部,您可以使用这些信息来选择行。

    如果您使用loadComplete 而不是gridComplete,您甚至可以消除保留隐藏行的需要。回调方法loadComplete 具有data 参数,这些参数使用源自ajax 调用的数据进行初始化。因此,如果您的服务器响应包含更多信息,如 jqGrid 需要,该数据将被 jqGrid 忽略,但您可以看到 loadComplete 中的数据并使用该信息设置行选择。

    【讨论】:

    • 奥列格!我想我会尝试 loadComplete 并使用数据参数手动设置,所以我不必创建额外的隐藏列,因为我已经使用 multiselect: true 了。但是,如果多选添加的复选框字段可以像其他字段一样自动绑定,那就太好了。谢谢!
    • @RadiusMaximus:看看the answerthis one,它们展示了如何枚举行并在每一行中执行一些操作。 Another answer 根据需要做密切的工作。 jQuery.inArray 的用法也很有帮助。
    • 我无法使用 loadComplete。它没有被调用,因为我这样做: datatype: function (pdata) { beginGridRequest('Retailers');获取零售商数据(pdata)},
    • 我提出了关于 loadComplete 未触发的新问题:stackoverflow.com/questions/7451198/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2019-07-25
    • 2017-02-04
    • 2017-04-14
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多