Forms jqgrid错误:对象不支持属性或方法';拆分';

Forms jqgrid错误:对象不支持属性或方法';拆分';,forms,jqgrid,edit,Forms,Jqgrid,Edit,我使用的是jqgridv4.4.1和MVC3 在JQGrid编辑表单上选择“下一条记录”或“上一条记录”图标时,我得到一个Microsoft JScript运行时错误:对象不支持方法“split”的属性 如果高亮显示jquery.jqgrid.min.js模块中的代码块:var j=g.split(“,”) 有时候intellesense说g=0,有时候是-2:我猜这是数据相关的,但我看不到任何可能导致这一点的原因! 我试着包括本模块的一部分,包括本次通话,但我很难理解它 有人能帮我确定这个错误

我使用的是jqgridv4.4.1和MVC3

在JQGrid编辑表单上选择“下一条记录”或“上一条记录”图标时,我得到一个Microsoft JScript运行时错误:对象不支持方法“split”的属性

如果高亮显示jquery.jqgrid.min.js模块中的代码块:var j=g.split(“,”)

有时候intellesense说g=0,有时候是-2:我猜这是数据相关的,但我看不到任何可能导致这一点的原因! 我试着包括本模块的一部分,包括本次通话,但我很难理解它

有人能帮我确定这个错误的原因吗

jquery.jqGrid.min.js Extract

2*k+"'>"+t.rowcontent+"</td></tr>"),a(h).append(r),r[0].rp=u);0===m.length&&(m=a("<tr "+q+" rowpos='"+u+"'></tr>").addClass("FormData").attr("id","tr_"+f),a(m).append(p),a(h).append(m),m[0].rp=u);a("td:eq("+(y-2)+")",m[0]).html("undefined"===typeof t.label?e.p.colNames[o]:t.label);a("td:eq("+(y-1)+")",m[0]).append(t.elmprefix).append(l).append(t.elmsuffix);n[j]=o;j++}});if(0<j&&(o=a("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*k-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+
e.p.id+"_id' value='"+d+"'/></td></tr>"),o[0].rp=j+999,a(h).append(o),c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate))c[b.p.id]._savedData[e.p.id+"_id"]=d;return n}function r(d,e,h){var f,k=0,g,m,j,q,l;if(c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData={},c[b.p.id]._savedData[e.p.id+"_id"]=d;var o=e.p.colModel;if("_empty"==d)a(o).each(function(){f=this.name;j=a.extend({},this.editoptions||{});if((m=a("#"+a.jgrid.jqID(f),"#"+h))&&m.length&&null!==m[0])if(q="",j.defaultValue?
(q=a.isFunction(j.defaultValue)?j.defaultValue.call(b):j.defaultValue,"checkbox"==m[0].type?(l=q.toLowerCase(),0>l.search(/(false|0|no|off|undefined)/i)&&""!==l?(m[0].checked=!0,m[0].defaultChecked=!0,m[0].value=q):(m[0].checked=!1,m[0].defaultChecked=!1)):m.val(q)):"checkbox"==m[0].type?(m[0].checked=!1,m[0].defaultChecked=!1,q=a(m).attr("offval")):m[0].type&&"select"==m[0].type.substr(0,6)?m[0].selectedIndex=0:m.val(q),!0===c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData[f]=
q}),a("#id_g","#"+h).val(d);else{var n=a(e).jqGrid("getInd",d,!0);n&&(a('td[role="gridcell"]',n).each(function(m){f=o[m].name;if("cb"!==f&&"subgrid"!==f&&"rn"!==f&&!0===o[m].editable){if(f==e.p.ExpandColumn&&!0===e.p.treeGrid)g=a(this).text();else try{g=a.unformat.call(e,a(this),{rowId:d,colModel:o[m]},m)}catch(i){g="textarea"==o[m].edittype?a(this).text():a(this).html()}b.p.autoencode&&(g=a.jgrid.htmlDecode(g));if(!0===c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData[f]=g;f=
a.jgrid.jqID(f);switch(o[m].edittype){case "password":case "text":case "button":case "image":case "textarea":if("&nbsp;"==g||"&#160;"==g||1==g.length&&160==g.charCodeAt(0))g="";a("#"+f,"#"+h).val(g);break;case "select":var j=g.split(","),j=a.map(j,function(b){return a.trim(b)});a("#"+f+" option","#"+h).each(function(){this.selected=!o[m].editoptions.multiple&&(a.trim(g)==a.trim(a(this).text())||j[0]==a.trim(a(this).text())||j[0]==a.trim(a(this).val()))?!0:o[m].editoptions.multiple?-1<a.inArray(a.trim(a(this).text()),
j)||-1<a.inArray(a.trim(a(this).val()),j)?!0:!1:!1});break;case "checkbox":g+="";o[m].editoptions&&o[m].editoptions.value?o[m].editoptions.value.split(":")[0]==g?(a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("checked",!0),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!0)):(a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("checked",!1),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!1)):(g=g.toLowerCase(),0>g.search(/(false|0|no|off|undefined)/i)&&""!==g?(a("#"+f,"#"+h)[b.p.useProp?
"prop":"attr"]("checked",!0),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!0)):(a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("checked",!1),a("#"+f,"#"+h)[b.p.useProp?"prop":"attr"]("defaultChecked",!1)));break;case "custom":try{if(o[m].editoptions&&a.isFunction(o[m].editoptions.custom_value))o[m].editoptions.custom_value.call(b,a("#"+f,"#"+h),"set",g);else throw"e1";}catch(q){"e1"==q?a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+a.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose):
a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,q.message,jQuery.jgrid.edit.bClose)}}k++}}),0<k&&a("#id_g",i).val(d))}}function u(){a.each(b.p.colModel,function(a,b){b.editoptions&&!0===b.editoptions.NullIfEmpty&&k.hasOwnProperty(b.name)&&""===k[b.name]&&(k[b.name]="null")})}function t(){var e,f=[!0,"",""],m={},g=b.p.prmNames,j,o,l,n,v,p=a(b).triggerHandler("jqGridAddEditBeforeCheckValues",[a("#"+h),z]);p&&"object"===typeof p&&(k=p);a.isFunction(c[b.p.id].beforeCheckValues)&&(p=c[b.p.id].beforeCheckValues.call(b,
k,a("#"+h),"_empty"==k[b.p.id+"_id"]?g.addoper:g.editoper))&&"object"===typeof p&&(k=p);for(l in k)if(k.hasOwnProperty(l)&&(f=a.jgrid.checkValues.call(b,k[l],l,b),!1===f[0]))break;u();f[0]&&(m=a(b).triggerHandler("jqGridAddEditClickSubmit",[c[b.p.id],k,z]),void 0===m&&a.isFunction(c[b.p.id].onclickSubmit)&&(m=c[b.p.id].onclickSubmit.call(b,c[b.p.id],k)||{}),f=a(b).triggerHandler("jqGridAddEditBeforeSubmit",[k,a("#"+h),z]),void 0===f&&(f=[!0,"",""]),f[0]&&a.isFunction(c[b.p.id].beforeSubmit)&&(f=c[b.p.id].beforeSubmit.call(b,
k,a("#"+h))));if(f[0]&&!c[b.p.id].processing){c[b.p.id].processing=!0;a("#sData",i+"_2").addClass("ui-state-active");o=g.oper;j=g.id;k[o]="_empty"==a.trim(k[b.p.id+"_id"])?g.addoper:g.editoper;k[o]!=g.addoper?k[j]=k[b.p.id+"_id"]:void 0===k[j]&&(k[j]=k[b.p.id+"_id"]);delete k[b.p.id+"_id"];k=a.extend(k,c[b.p.id].editData,m);if(!0===b.p.treeGrid)for(v in k[o]==g.addoper&&(n=a(b).jqGrid("getGridParam","selrow"),k["adjacency"==b.p.treeGridModel?b.p.treeReader.parent_id_field:"parent_id"]=n),b.p.treeReader)b.p.treeReader.hasOwnProperty(v)&&
(m=b.p.treeReader[v],k.hasOwnProperty(m)&&!(k[o]==g.addoper&&"parent_id_
2*k+”>“+t.rowcontent+”),a(h).append(r),r[0].rp=u);0===m.length&&(m=a(“”).addClass(“FormData”).attr(“id”,“tr_u”+f),a(m).append(p),a(h).append(m),m[0].rp=u);a(“td:eq(“+(y-2)+”),m[0]).html(“未定义”==t.label的类型?e.p.colNames[o]:t.label);a(“td:eq(“+(y-1)+”),m[0])。追加(t.elmprefix)。追加(l)。追加(t.elmSufix);n[j]=o;j++});如果(0l.search(/(false | 0 | no | off | undefined)/i)和&“!==l?(m[0]。选中=!0,m[0]。默认选中=!0,m[0]。值=q:(m[0]。选中=!1,m[0]。默认选中=!1,m[0]。默认选中=!1,q=a(m)。attr(,):m[0]。type=m[0]。type=m[0]。selected=m[0]:“selected=”m[0],m,!0==c[b.p.id]。检查提交| | c[b.p.id]。检查更新)c[b.p.id]。_保存数据[f]=
q} )、a(“#id_g”、“#”+h.val(d);(3)n和(a)a(([T[RoRoRole=“GriCeCeCeCeCeCeCeCen“、n)。每个(功能)功能(m){f=o[m.名称;如果(C)var n=a(e)n=a(e)a(e)a(e)C)n=a(e)n=a(e)n=a(var=n=a(e=var=n=a=a=a(e=a(e=a)a(e=a=a(e=a)a(e=a(e=a(e=a)(n=a)(n=a)(n=n=a=a=n=a=a=a=a=a=a=a=a=a=a(d),d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,(d,.edittype?a(this).text():a(this).html()}b、 p.autoencode&&(g=a.jgrid.htmlDecode(g));if(!0==c[b.p.id]。checkOnSubmit | | c[b.p.id]。checkOnUpdate)c[b.p.id]。_savedData[f]=g;f=

a、 jgrid.JQ7.JQD.JQD.JQD.JQD.JQD.JQD.JQD.JQD.JQD.JQD.f.f.f;D.f.f;D.f.f;D.f;D.f;开关(o.m)开关(o.m.m).编辑类型)编辑类型:{案件(C.C.C.C.C.C.C.密码:案例”密码:案例“文本:案例”文本:文本:案例”文本:文本:案例“文本:案例”文本:案例”文本:文本:案例“文本:案例”按钮:案例”按钮:案例”按钮:案例“图像:案例”图像:案例:案例“图像:案例”图像:案例:案例”图像:案例”图像:案例“文本:案例”图像:案例”区域:案例“文本:案例”文本:案例”文本:案例:假如:假如:假如:假如(若(f(((“”)区:假如(f(“.this.selected=!o[m].editoptions.multiple&&(a.trim(g)=a.trim(a(this.text())| j[0]==a.trim(a(this.text())| j[0]==a.trim(a(this.val())?!0:o[m].editoptions.Oleg为我指出正确方向后(谢谢Oleg!)出现了多个?<1。我已设法解决了此错误

使用jquery.jqgrid.src.js(可读性更强)我想方设法猜测问题出在我的网格中使用格式化程序的一列上。然后我注意到,即使在加载编辑表单时(该列的值不正确),由于edittype为“select”,它默认为值列表中的第一项

格式化程序将获取列的值(在本例中可以是-2、0或1),并将其转换为gif,以便在列中显示。这非常有效

然而,不可原谅的是,它试图将图像转换回其各自的数字(基于其标题)。然后我返回一个数值(即-2、0或1)。我需要返回一个字符串值。(即“-2”、“0”或“1”)

因此,似乎对于不可格式化的事务,您不能像这样返回数值

为了清晰起见,我在下面添加了工作代码:)

工作格式化程序

function EnabledFormatter(cellvalue, options, rowObject) {
    var cellValueInt = parseInt(cellvalue);
    switch (cellValueInt)
    {
        case 1:
            return "<img src='@Url.Content("~/Content/images/tick.gif")' title='Enabled' />";
            break;
        case -2:
            return "<img src='@Url.Content("~/Content/images/tick-grey.png")' title='Inherited' />";
            break;
        default:
            return "<img src='@Url.Content("~/Content/images/cross.gif")' title='Disabled' />";
            break;
    };
};

function EnabledUnformatter (cellvalue, options, cell) {
    var sTitle = $('img', cell).attr('title');

    switch (sTitle)
    {
        case 'Enabled':
            return '1';
            break;
        case 'Inherited':
            return '-2';
            break;
        default:
            return '0';
            break;
    };
};

您应该将
jquery.jqGrid.min.js
替换为
jquery.jqGrid.src.js
,然后重复测试。您应该发布发生错误的
jquery.jqGrid.src.js
中的行号。嗨,Oleg,非常感谢这个gem:)我现在正在使用jquery.jqgrid.src.js,它给了我足够的信息,让我指向使用格式化程序的列的方向,这就是问题的原因。我将在下面发布解决方案。再次感谢。Andrew。
function EnabledUnformatter (cellvalue, options, cell) {
    var sTitle = $('img', cell).attr('title');

    switch (sTitle)
    {
        case 'Enabled':
            return 1;
            break;
        case 'Inherited':
            return -2;
            break;
        default:
            return 0;
            break;
    };
};