好的我回到这里,我刚刚删除了格式化程序:“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');
...
感谢。
答案 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。