2012-07-06 98 views
0

我正在开发一个网格,其中包含每个模块的许可证列表。JQGrid:dataEvents中的依赖性下拉列表更改

我想要的是在列中的组合框中进行更改时验证每2个事件。我使用的是1和0的激活/停用

第一种情况:如果我主动“写”,“修改”,“删除”或“打印”指的是自我选择“读”

enter image description here

第二种情况是相反的:如果禁用“阅读”将自动关闭“写”,“修改”,“删除”和“打印”

enter image description here

研究,我发现选项使用输入事件的函数:

{"name":"read", 
"index":"read", 
"width":48, 
"resizable":false, 
"editable":true, 
"edittype":"select", 
"editoptions":{ 
    "value":"0:0;1:1", 
    "dataEvents":[{ 
       "type":"change", 
       "fn":function(e){ 
        if($(e.target).val() == '0') 
        { 
        // actions here... 
        } 
       } 
       }] 
} 
} 

您可以更改其他列的元素...按行吗?

编辑

我的解决方案:

$('tr.jqgrow select[name*="read"]').live("change",function() 
{ 
    if($(this).val() === '0') $(this).closest('tr.jqgrow').find('select.editable').not(this).find('option:first-child').attr("selected", "selected"); 
}); 

$('tr.jqgrow select[name!="read"]').live("change",function() 
{ 
    $(this).closest('tr.jqgrow').find('select[name*="read"]').find('option:last-child').attr("selected", "selected"); 
}); 

回答

0

the answer,你会发现一个例子如何实现jqGrid的依赖性选择。顺便说一下,您可以使用与formatter: "checkbox"相同的想法。在这种情况下,执行会更容易。您必须手动修改<select>元素或chachboxes

One more answer可以显示另一个可以使用的实现选项。

+0

感谢您的回复,我阅读了关于国家和州的主题...但我看到使用的代码非常广泛,也必须在每个字段中复制相同的功能,以便发布第二种情况。 我编辑我的问题与我自己的解决方案,适合我的需求。谢谢 – csotelo 2012-07-07 15:49:29

+0

@csotelo:我写过你的话,解决方案会容易得多。重要的是,您只需手动更改'