如何动态隐藏jqgrid列
我正在我的asp.net MVC Web应用程序中实现jqgrid。
在我的网格中,我有两列编辑和删除。 仅当用户以管理员身份登录时,删除才可见。
我们怎样才能在jqgrid中动态隐藏.show列。 我有一个会话变量来检查登录用户是否是管理员。
我在javascript中访问该变量。 但是,不知道如何在jqgrid中隐藏/显示列
请帮忙..
使用此代码,
jQuery("#list").jqGrid('hideCol',["colModel1_name","colModel2_name"]); jQuery("#list").jqGrid('showCol',["colModel1_name","colModel2_name"]);
愿这对你有所帮助。
这个工作:
$("#list").hideCol("ColumnName")
较新的API
jQuery("#list").jqGrid('hideCol',["ColumnName","ColumnName2"]);
较旧的API
$("#list").hideCol("ColumnName")
这不是使用js管理安全性的最佳实践。 您不应该在服务器端显示此列!
我今天不得不深入研究一些传统的东西。 其中一个要求是有条件地设置某些列的可见性。 页面上有一个下拉列表,用于在网格的where子句中设置类别参数。 长话短说,观看下拉的变化事件是不可能的,这使得答案中的大部分方法无效。
我能够在隐藏的参数中使用三元组来设置可见性。
{ name: 'mfg', index: 'mfg', width: 150, sortable: true, hidden: $('#evCategory').val() == 'Calibration' ? false : true },
并且如果下拉值具有隐藏的校准值应该是假的,如果校准不是隐藏的值应该是真的,那么它就简单地说明了。
也可以缩短它;
!$('#evCategory').val() == 'Calibration' || true
虽然我没有测试过。