如何解决jqgrid recreateform宽度设置,仅适用于编辑,不适用于添加
|| 看过jqgrid Wiki,但找不到我需要的东西。 我已经将recreateform设置为true并设置了宽度,可以很好地进行编辑,但是当我尝试添加新记录时,表单的宽度不等于我在recreateform参数中指定的宽度,它们是添加表单的单独设置吗? 这是我的代码:myGrid = jQuery(\"#rowed2\").jqGrid({
url:\'data/stokistdata_s_json.php?q=3\',datatype: \"json\",mtype: \"POST\",rowNum:10,rowList:[50,100,150,200,300,400,500,600],pager: \'#prowed2\',sortname: \'id_mdt\',viewrecords: true,gridview:true,sortorder: \"asc\",rowNum:50,scroll: true,editurl: \"data/server.php\",caption:\"Stockist\'s and Orchid days\",colNames:[
\'Actions\',\'id\',\'Type\',\'Name\',\'Geo Address\',\'Display Address\',\'Telephone\',\'Email\',\'website\',\'lat\',\'lng\',\'flag\',\'description\',\'active\'
],colModel:[{
name:\'Actions\',index:\'Actions\',width:100,sortable:false,search:false
},{
name:\'id_mdt\',index:\'id_mdt\',width:15,align:\"left\",sortable:true,search:false,editable:true,hidden: true,editrules: { edithidden: false }
//editoptions:{size:\"20\"}
},{
name:\'id_etp\',index:\'id_etp\',width:90,edittype:\"select\",formatter:\'select\',editoptions:{value:\":All;1:Stockist;2:Orchid Day\"},search:true,stype:\'select\',sopt: [\'eq\'],searchoptions:{value:\":All;1:Stockist;2:Orchid Day\"}
},{
name:\'Name_mdt\',index:\'Name_mdt\',width:150,stype:\'text\',sopt:[\'cn\']
},{
name:\'geoaddr_mdt\',index:\'geoaddr_mdt\',edittype:\"textarea\",editoptions:{rows:\"3\",cols:\"30\"}
},{
name:\'displayaddr_mdt\',index:\'displayaddr_mdt\',{
name:\'telephone_mdt\',index:\'telephone_mdt\',width:80,{
name:\'email_mdt\',index:\'email_mdt\',{
name:\'website_mdt\',index:\'website_mdt\',{
name:\'lat_mdt\',index:\'lat_mdt\',width:40,{
name:\'lng_mdt\',index:\'lng_mdt\',{
name:\'flag_mdt\',index:\'flag_mdt\',width:20,editoptions: {value:{\'1\':\'Flagged\',\'0\':\'No Flag\'}},//
stype:\'select\',searchoptions:{value:{\'\':\'All\',\'1\':\'Flagged\',\'0\':\'No Flag\'}}//{value:\":Both;1:Flagged;0:No Flag\"}
},{
name:\'description_mdt\',index:\'description_mdt\',{
name:\'active_mdt\',index:\'active_mdt\',editoptions: {value:{\'1\':\'Active\',\'0\':\'Hidden\'}},\'1\':\'Active\',\'0\':\'Hidden\'}} //{value:\":Both;1:Active;0:Hidden\"}
}],search : {
caption: \"Search...\",Find: \"Find\",Reset: \"Reset\",matchText: \" match\",rulesText: \" rules\"
},gridComplete: function(){
var ids = jQuery(\"#rowed2\").jqGrid(\'getDataIDs\');
for(var i=0;i < ids.length;i++){
var cl = ids[i];
be = \"<input style=\'height:22px;width:20px;\' type=\'button\' value=\'E\' alt=\'Edit Location\' onclick=\\\"jQuery(\'#rowed2\').editGridRow(\'\"+cl+\"\');\\\" />\";
se = \"<input style=\'height:22px;width:20px;\' type=\'button\' value=\'S\' onclick=\\\"jQuery(\'#rowed2\').saveRow(\'\"+cl+\"\');\\\" />\";
ce = \"<input style=\'height:22px;width:20px;\' type=\'button\' value=\'C\' onclick=\\\"jQuery(\'#rowed2\').restoreRow(\'\"+cl+\"\');\\\" />\";
fl = \"<input style=\'height:22px;width:50px;\' type=\'button\' value=\'Find\' alt=\'Find Location\' class=\'findMe\' rel=\'\"+cl+\"\' />\";
gc = \"<input style=\'height:22px;width:50px;\' type=\'button\' value=\'Geo\' class=\'geocodeMe\' rel=\'\"+cl+\"\' />\";
jQuery(\"#rowed2\").jqGrid(\'setRowData\',ids[i],{Actions:fl+gc});
}
}
});
jQuery(\"#rowed2\").jqGrid(\'navGrid\',\"#prowed2\",{edit:true,add:true,del:true,refresh:true},{closeOnEscape:true,recreateForm: true,width:600}
);
myGrid.jqGrid(\'filterToolbar\',{defaultSearch:\'cn\',stringResult:true})
解决方法
您误解了“ 1”的含义。我试图解释为什么需要它。
方法navGrid最多具有7个参数。您仅使用
prmEdit
,而不设置prmAdd
参数。那是你的主要问题。 \“添加\”和\“编辑\”对话框的默认实现是这样,一个创建的对话框将不会关闭,而只会隐藏。而且,一个对话框将被共享(!!!)为“添加”和“编辑”对话框。如果使用ѭ1that,则先前创建的对话框(现已隐藏)将被销毁,并创建新的对话框。
在您的情况下,您仅将\“ Edit \”对话框参数定义为{closeOnEscape:true,recreateForm: true,width:600}
。因此,如果用户在“编辑”对话框之后打开“添加”对话框,则先前隐藏的“编辑”对话框将用作“添加”对话框。对话框的标题当然会更改。
所以你可以例如使用
jQuery(\"#rowed2\").jqGrid(\'navGrid\',\"#prowed2\",{edit:true,add:true,del:true,search:true,refresh:true},// navGrid options
{closeOnEscape:true,width:600},// Edit options
{closeOnEscape:true,width:500} // Add options
);
或重新定义“编辑”和“添加”对话框共有的网格默认设置。例如
jQuery.extend(jQuery.jgrid.edit,{
closeAfterAdd: true,closeAfterEdit: true,jqModal: false,savekey: [true,13]
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。