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

时间:2012-11-29 23:44:52

标签: jquery jqgrid

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


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

搜索:false,editable:false

直到新版JQGrid。


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


我有依赖的国家/地区下拉菜单(工具栏搜索,内联编辑和表单编辑)。我在datainit函数中获取行id时遇到问题,因此我可以从状态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');

...

感谢。

1 个答案:

答案 0 :(得分:0)

您当前的代码无法正常工作,因为在新dataInit<select>元素放置在页面上之前,回调<input>将被称为。此外elem.target是错误的。即使$(elem).closest('tr.jqgrow')也将永远是空的jQuery元素。确切地说,如果您使用github中最新的jqGrid代码,则可以使用代码。原因是the resent changes基于my suggestion。如果您使用jqGrid 4.4.1的最新发布版本,则更改仍然不在此处。我认为应该在jqGrid的代码中做一些额外的更改,以便更容易实现依赖选择。

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