Jquery JQGrid:无法在DataInit函数中获取行ID

Jquery JQGrid:无法在DataInit函数中获取行ID,jquery,jqgrid,Jquery,Jqgrid,好的,我回到这里,我刚刚删除了格式化程序:select,它需要一个匹配的状态键才能显示在网格中 好吧,我放弃,我的解决方案是: 搜索:false,可编辑:false 直到新版本的JQGrid 好的,看看Oleg的代码,这里的解决方案似乎是首先用所有国家的所有可能值填充state select。考虑到我处理的世界上有相当多的状态,仅仅为了找到与实际单元值相匹配的状态,就要拉下3-4000个状态,这有点困难。还在做这个 我有相关的国家和州下拉列表,包括工具栏搜索、内联编辑和表单编辑。我在获取data

好的,我回到这里,我刚刚删除了格式化程序:select,它需要一个匹配的状态键才能显示在网格中

好吧,我放弃,我的解决方案是:

搜索:false,可编辑:false

直到新版本的JQGrid

好的,看看Oleg的代码,这里的解决方案似乎是首先用所有国家的所有可能值填充state select。考虑到我处理的世界上有相当多的状态,仅仅为了找到与实际单元值相匹配的状态,就要拉下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');


谢谢。

您当前的代码无法工作,因为在页面上放置新的or元素之前将调用回调dataInit。此外,elem.target是错误的。即使$elem.closest'tr.jqgrow'也将始终是空的jQuery元素。确切地说,如果您使用最新的jqGrid代码,代码将是可能的。原因是这些都是基于。如果您使用的是jqGrid 4.4.1的最新发布版本,那么更改仍然不在这里。我认为应该在jqGrid的代码中做一些额外的更改,以使依赖选择的实现更加容易


我发现依赖选择的实现非常复杂和棘手。我建议你从医院检查一下

谢谢你的回复。我使用您的代码作为参考,确实有相关的下拉列表。唯一的问题是初始条件,我需要国家下拉列表的值来填充国家下拉列表。我尝试了github的版本,但我不清楚我需要做什么。我注意到它破坏了我在搜索工具栏上使用的daterangepicker的实现。