我希望能够在用户尝试编辑行时将字段传递到编辑表单中,但我不希望这些字段可以编辑 - 我希望它们只是被隐藏所以它们仍然会被发送到服务器
例如:
colModel :[
{label: 'Game ID', name: 'game_id', editable:true},
{label: 'Component ID', name: 'component_id', editable:true},
{label: 'Table ID', name: 'table_id', editable:true},
],
这会将它们传递给编辑表单(因为editable:true
),但不幸的是,用户可以编辑它们。我想隐藏这些字段,以便用户无法编辑它们。
我该怎么做?
答案 0 :(得分:7)
现在,jqGrid通过edithidden属性支持此功能:
colModel: [
{ name: 'optionValue', key: true, index: 'optionValue', width: 55, editable: true, hidden: true, editrules: { edithidden: false } },
设置为false以在添加/编辑表单中隐藏它。
答案 1 :(得分:5)
修改强>
好的,事实证明你可以将自定义元素定义为edittype。根据您的情况,您可以执行以下操作:
colModel :[
{label: 'Game ID', name: 'game_id', editable:true, edittype:'custom',editoptions:{custom_element:myelem,custom_value:myval}},
{label: 'Component ID', name: 'component_id', editable:true, edittype:'custom',editoptions:{custom_element:myelem,custom_value:myval} },
{label: 'Table ID', name: 'table_id', editable:true, edittype:'custom',editoptions:{custom_element:myelem,custom_value:myval}}
]
然后你就像这样定义myelem
和myval
:
function myelem(value,options){
return $('<input type="text" value="'+value+'" disabled="disabled"/>');
}
function myval(elem){
return elem.val();
}
这将构建一个禁用的文本字段,并且似乎比afterShowForm
更少hack-ish。
<强> ORIGINAL 强>
如果您使用的是编辑表单控件(不是内联编辑),则看起来您必须提供afterShowForm功能(向下滚动到“事件”部分)。请参阅this question。
看起来您希望列显示在视图中,但不可编辑。如果您设置editable:true
,则无论如何,用户都可以编辑该字段。你最不得不做的是禁用/设置表单元素为隐藏,这样用户就无法改变它的值。 afterShowForm
会看起来像:
afterShowForm: function(eparams){
// change the selector appropriately
$('#jqGrid input[name=game_id]').attr('type','hidden');
// or $('#jqGrid input[name=game_id]').attr('disabled','disabled');
}
答案 2 :(得分:2)
我认为更简洁的方法是onclickSubmit事件 - 您可以添加要提交的额外字段。
var gr = jQuery("#table").jqGrid('getGridParam', 'selrow');
var row = jQuery("#table").getRowData(gr);
return { Id: row.Id };
答案 3 :(得分:0)
试试这个:
beforeShowForm: function (formid)
{
$("#tr_name",formid).hide();
},
答案 4 :(得分:0)
如果要传递给编辑数据库函数的信息,您可以通过URL传递其他参数
editurl:"database_edit.asp?user_id="+user_id
不一定是更好的方式 - 只是一个不同的方式。
干杯
保
答案 5 :(得分:0)
试试这个:
colModel: [
{ name: 'your_field_name', editable: true, hidden: true, search:false, editoptions: {style:'display:none;'}},
]
答案 6 :(得分:0)
如果您可以信任最终用户,只需添加editoptions属性并将禁用参数设置为已禁用,如下所示:
colModel: [
{ name: 'your_field_name', editable: true, hidden: true, search:false, editoptions: {'disabled':'disabled'}},
]