📄 grid.formedit.js
字号:
if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
else { $($t).addRowData(ret[2],postdata,p.addedrow); }
$(".FormElement", "#"+frmtb).each(function(i){
switch ($(this).get(0).type) {
case "checkbox":
$(this).attr("checked",0);
break;
case "select-one":
case "select-multiple":
$("option",this).attr("selected","");
break;
case "password":
case "text":
case "textarea":
if(this.name =='id') { $(this).val("_empty"); }
else { $(this).val(""); }
break;
}
});
} else {
if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
else { $($t).addRowData(ret[2],postdata,p.addedrow); }
}
} else {
// the action is update
if(rp_ge.reloadAfterSubmit) {
$($t).trigger("reloadGrid");
if( !rp_ge.closeAfterEdit ) { $($t).setSelection(postdata.id); }
} else {
if($t.p.treeGrid === true) {
$($t).setTreeRow(postdata.id,postdata);
} else {
$($t).setRowData(postdata.id,postdata);
}
}
if(rp_ge.closeAfterEdit) { hideModal("#"+IDs.themodal); }
}
if($.isFunction(rp_ge.afterComplete)) {
setTimeout(function(){rp_ge.afterComplete(data,postdata,$("#"+frmgr));},500);
}
}
p.processing=false;
$("#sData", "#"+frmtb).attr("disabled",false);
$("div.loading","#"+IDs.themodal).fadeOut("fast");
}
});
}
}
e.stopPropagation();
});
$("#cData", "#"+frmtb).click(function(e){
hideModal("#"+IDs.themodal);
e.stopPropagation();
});
$("#nData", "#"+frmtb).click(function(e){
$("#FormError","#"+frmtb).hide();
var npos = getCurrPos();
npos[0] = parseInt(npos[0]);
if(npos[0] != -1 && npos[1][npos[0]+1]) {
if($.isFunction(p.onclickPgButtons)) {
p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
}
fillData(npos[1][npos[0]+1],$t);
$($t).setSelection(npos[1][npos[0]+1]);
if($.isFunction(p.afterclickPgButtons)) {
p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
}
updateNav(npos[0]+1,npos[1].length-1);
};
return false;
});
$("#pData", "#"+frmtb).click(function(e){
$("#FormError","#"+frmtb).hide();
var ppos = getCurrPos();
if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
if($.isFunction(p.onclickPgButtons)) {
p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
}
fillData(ppos[1][ppos[0]-1],$t);
$($t).setSelection(ppos[1][ppos[0]-1]);
if($.isFunction(p.afterclickPgButtons)) {
p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
}
updateNav(ppos[0]-1,ppos[1].length-1);
};
return false;
});
};
var posInit =getCurrPos();
updateNav(posInit[0],posInit[1].length-1);
function updateNav(cr,totr,rid){
var imp = $t.p.imgpath;
if (cr==0) { $("#pData","#"+frmtb).attr("src",imp+"off-"+$t.p.previmg); } else { $("#pData","#"+frmtb).attr("src",imp+$t.p.previmg); }
if (cr==totr) { $("#nData","#"+frmtb).attr("src",imp+"off-"+$t.p.nextimg); } else { $("#nData","#"+frmtb).attr("src",imp+$t.p.nextimg); }
};
function getCurrPos() {
var rowsInGrid = $($t).getDataIDs();
var selrow = $("#id_g","#"+frmtb).val();
var pos = $.inArray(selrow,rowsInGrid);
return [pos,rowsInGrid];
};
function createData(rowid,obj,tb){
var nm, hc,trdata, tdl, tde, cnt=0,tmp, dc,elc, retpos=[];
$('#'+rowid+' td',obj.grid.bDiv).each( function(i) {
nm = obj.p.colModel[i].name;
// hidden fields are included in the form
if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden == true) {
hc = false;
} else {
hc = obj.p.colModel[i].hidden === true ? true : false;
}
dc = hc ? "style='display:none'" : "";
if ( nm !== 'cb' && nm !== 'subgrid' && obj.p.colModel[i].editable===true) {
if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
tmp = $(this).text();
} else {
try {
tmp = $.unformat(this,{colModel:obj.p.colModel[i]},i);
} catch (_) {
tmp = $.htmlDecode($(this).html());
}
}
var opt = $.extend(obj.p.colModel[i].editoptions || {} ,{id:nm,name:nm});
if(!obj.p.colModel[i].edittype) obj.p.colModel[i].edittype = "text";
elc = createEl(obj.p.colModel[i].edittype,opt,tmp);
$(elc).addClass("FormElement");
trdata = $("<tr "+dc+"></tr>").addClass("FormData").attr("id","tr_"+nm);
tdl = $("<td></td>").addClass("CaptionTD");
tde = $("<td></td>").addClass("DataTD");
$(tdl).html(obj.p.colNames[i]+": ");
$(tde).append(elc);
trdata.append(tdl);
trdata.append(tde);
if(tb) { $(tb).append(trdata); }
else { $(trdata).insertBefore("#Act_Buttons"); }
retpos[cnt] = i;
cnt++;
};
});
if( cnt > 0) {
var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'>"+" "+"</td><td class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>");
if(tb) { $(tb).append(idrow); }
else { $(idrow).insertBefore("#Act_Buttons"); }
}
return retpos;
};
function fillData(rowid,obj){
var nm, hc,cnt=0,tmp;
$('#'+rowid+' td',obj.grid.bDiv).each( function(i) {
nm = obj.p.colModel[i].name;
// hidden fields are included in the form
if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {
hc = false;
} else {
hc = obj.p.colModel[i].hidden === true ? true : false;
}
if ( nm !== 'cb' && nm !== 'subgrid' && obj.p.colModel[i].editable===true) {
if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
tmp = $(this).text();
} else {
try {
tmp = $.unformat(this,{colModel:obj.p.colModel[i]},i);
} catch (_) {
tmp = $.htmlDecode($(this).html());
}
}
nm= nm.replace('.',"\\.");
switch (obj.p.colModel[i].edittype) {
case "password":
case "text":
tmp = $.htmlDecode(tmp);
$("#"+nm,"#"+frmtb).val(tmp);
break;
case "textarea":
if(tmp == " " || tmp == " ") {tmp='';}
$("#"+nm,"#"+frmtb).val(tmp);
break;
case "select":
$("#"+nm+" option","#"+frmtb).each(function(j){
if (!obj.p.colModel[i].editoptions.multiple && tmp == $(this).text() ){
this.selected= true;
} else if (obj.p.colModel[i].editoptions.multiple){
if( $.inArray($(this).text(), tmp.split(",") ) > -1 ){
this.selected = true;
}else{
this.selected = false;
}
} else {
this.selected = false;
}
});
break;
case "checkbox":
if(tmp==$("#"+nm,"#"+frmtb).val()) {
$("#"+nm,"#"+frmtb).attr("checked",true);
$("#"+nm,"#"+frmtb).attr("defaultChecked",true); //ie
} else {
$("#"+nm,"#"+frmtb).attr("checked",false);
$("#"+nm,"#"+frmtb).attr("defaultChecked",""); //ie
}
break;
}
if (hc) { $("#"+nm,"#"+frmtb).parents("tr:first").hide(); }
cnt++;
}
});
if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
else { $("#id_g","#"+frmtb).val(""); }
return cnt;
};
});
},
delGridRow : function(rowids,p) {
p = $.extend({
top : 0,
left: 0,
width: 240,
height: 90,
modal: false,
drag: true,
closeicon: 'ico-close.gif',
imgpath: '',
url : '',
mtype : "POST",
reloadAfterSubmit: true,
beforeShowForm: null,
afterShowForm: null,
beforeSubmit: null,
onclickSubmit: null,
afterSubmit: null,
onclickSubmit: null,
delData: {}
}, $.jgrid.del, p ||{});
return this.each(function(){
var $t = this;
if (!$t.grid ) { return; }
if(!rowids) { return; }
if(!p.imgpath) { p.imgpath= $t.p.imgpath; }
var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;
var onAfterShow = typeof p.afterShowForm === 'function' ? true: false;
if (isArray(rowids)) { rowids = rowids.join(); }
var gID = $("table:first",$t.grid.bDiv).attr("id");
var IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID};
var dtbl = "DelTbl_"+gID;
if ( $("#"+IDs.themodal).html() != null ) {
$("#DelData>td","#"+dtbl).text(rowids);
$("#DelError","#"+dtbl).hide();
if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
viewModal("#"+IDs.themodal,{modal:p.modal});
if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
} else {
var tbl =$("<table id='"+dtbl+"' class='DelTable'><tbody></tbody></table>");
// error data
$(tbl).append("<tr id='DelError' style='display:none'><td >"+" "+"</td></tr>");
$(tbl).append("<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>");
$(tbl).append("<tr><td >"+p.msg+"</td></tr>");
// buttons at footer
var bS ="<input id='dData' type='button' value='"+p.bSubmit+"'/>";
var bC ="<input id='eData' type='button' value='"+p.bCancel+"'/>";
$(tbl).append("<tr><td class='DelButton'>"+bS+" "+bC+"</td></tr>");
createModal(IDs,tbl,p,$t.grid.hDiv,$t.grid.hDiv);
if( p.drag) { DnRModal("#"+IDs.themodal,"#"+IDs.modalhead+" td.modaltext"); }
$("#dData","#"+dtbl).click(function(e){
var ret=[true,""];
var postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...
if( typeof p.onclickSubmit === 'function' ) { p.delData = p.onclickSubmit(p) || {}; }
if( typeof p.beforeSubmit === 'function' ) { ret = p.beforeSubmit(postdata); }
var gurl = p.url ? p.url : $t.p.editurl;
if(!gurl) { ret[0]=false;ret[1] += " "+$.jgrid.errors.nourl;}
if(ret[0] === false) {
$("#DelError>td","#"+dtbl).html(ret[1]);
$("#DelError","#"+dtbl).show();
} else {
if(!p.processing) {
p.processing = true;
$("div.loading","#"+IDs.themodal).fadeIn("fast");
$(this).attr("disabled",true);
var postd = $.extend({oper:"del", id:postdata},p.delData);
$.ajax({
url:gurl,
type: p.mtype,
data:postd,
complete:function(data,Status){
if(Status != "success") {
ret[0] = false;
ret[1] = Status+" Status: "+data.statusText +" Error code: "+data.status;
} else {
// data is posted successful
// execute aftersubmit with the returned data from server
if( typeof p.afterSubmit === 'function' ) {
ret = p.afterSubmit(data,postdata);
}
}
if(ret[0] === false) {
$("#DelError>td","#"+dtbl).html(ret[1]);
$("#DelError","#"+dtbl).show();
} else {
if(p.reloadAfterSubmit) {
if($t.p.treeGrid) {
$($t).setGridParam({treeANode:0,datatype:$t.p.treedatatype});
}
$($t).trigger("reloadGrid");
} else {
var toarr = [];
toarr = postdata.split(",");
if($t.p.treeGrid===true){
try {$($t).delTreeNode(toarr[0])} catch(e){}
} else {
for(var i=0;i<toarr.length;i++) {
$($t).delRowData(toarr[i]);
}
}
$t.p.selrow = null;
$t.p.selarrrow = [];
}
if($.isFunction(p.afterComplete)) {
setTimeout(function(){p.afterComplete(data,postdata);},500);
}
}
p.processing=false;
$("#dData", "#"+dtbl).attr("disabled",false);
$("div.loading","#"+IDs.themodal).fadeOut("fast");
if(ret[0]) { hideModal("#"+IDs.themodal); }
}
});
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -