【问题标题】:JQGrid: Can't get Row ID in DataInit functionJQGrid:无法在 DataInit 函数中获取行 ID
【发布时间】:2012-11-29 23:44:52
【问题描述】:

好的,我回来了,我刚刚删除了格式化程序:“select”,它需要匹配的状态键才能在网格中显示。


好吧我放弃了,我的解决办法是:

搜索:false,可编辑:false

直到 JQGrid 的新版本。


好的,所以看看 Oleg 的代码,似乎解决方案是最初用所有国家/地区的每个可能值填充州选择。鉴于我要处理很多“状态”(全球),为了找到与实际单元格值匹配的状态,下拉 3-4000 个状态有点笨拙。仍在努力。


我有依赖国家和州的下拉菜单(工具栏搜索、内联编辑和表单编辑)。我在 datainit 函数中获取行 ID 时遇到问题,因此我可以从 state searchoptions/editoptions 的 datainit 函数中检索国家/地区值。

肯定有办法找回这个吗?我也尝试设置超时,但没有运气:

    { name: "State", index: "MYSTATE", width: 50, align: "left", editable: true, formatter: "select", stype: "select", edittype: "select", sortable: true, editrules: { required: true, custom: true, custom_func: validateState },
            searchoptions:
            {
                value: GetStates('NG', true), // just hardcoded here for now
                dataInit: function (elem)
                {
                    var rowId = $(elem.target).closest('tr.jqgrow').attr('id');
                    var country = grid.jqGrid('getCell', rowId, 'Country');

...

谢谢。

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    您当前的代码无法运行,因为回调 dataInit 将在 新的 <select><input> 元素放置在页面上之前调用。此外elem.target 是错误的。即使$(elem).closest('tr.jqgrow') 也总是空的jQuery 元素。确切地说,如果您使用来自github 的最新 jqGrid 代码,代码将是可行的。原因是the resent changes 是基于my suggestion 制作的。如果您使用最新发布的 jqGrid 4.4.1 版本,更改还没有出现。我认为应该对 jqGrid 的代码进行一些额外的更改,以使依赖选择的实现更容易。

    我发现依赖选择的实现非常复杂和棘手。我建议您从the answer 检查the demo

    【讨论】:

    • 感谢您的回复奥列格。使用您的代码作为参考,我确实可以使用相关的下拉列表。唯一的问题是初始条件,我需要国家下拉列表的值来填充状态下拉列表。我尝试了来自 github 的版本,但我不清楚我需要做什么。我确实注意到它破坏了我在搜索工具栏上使用的灯丝组 daterangepicker 的实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2012-01-23
    相关资源
    最近更新 更多