【发布时间】:2015-04-23 14:16:57
【问题描述】:
当 colmodel 中的名称是整数时,jqgrid setcell 会导致问题。它给出了错误:
未捕获的类型错误:无法读取未定义的属性“格式化程序”。
我添加grid.locale-en.js 和jqgrid-min.js 的顺序是正确的。
准确地说,错误在该行中:
var h = a.p.colModel[e]; if (h.formatter !== void 0)
in jqgrid-min.js 其中 e colmodel 名称(注意这是一个整数)。
这是我设置单元格的方式。
$("#GoingCostLogGrid").jqGrid('setCell', rowId, Costs_ProjectOrProgram , cellValue_CurrentTotalforAllFY);
其中 Costs_ProjectOrProgram 是一个整数,也是 colmodel 中的列名。
【问题讨论】:
-
你使用什么版本的 jqGrid? 你应该包含 non-minimized 文件的行号(
jquery.jqgrid.src.js或jquery.jqgrid.js取决于您使用哪个版本)。你的意思是“colmodel 中的名称是一个整数”?您使用哪个值? (0或123或 ...)。名称始终为 string。所以你应该至少使用"0"或"123"而不是0或123。为什么你使用如此奇怪的列名呢?为什么不将名称改为"c1"、"c2"、"c3"、...而不是"1"、"2"、"3"、...? -
我一直在使用 jqGrid 4.6.0 - jQuery Grid (jquery.jqGrid.src.js) 确切的行号是 1121 [ if(cm.formatter !== undefined) ]。
-
表示你调用formatter函数时使用了错误的
colpos参数。我问了你多个问题,但你只回答了第一个问题。 -
我一直在使用 jqGrid 4.6.0 - jQuery Grid (jquery.jqGrid.src.js) 确切的行号是 1121 [ if(cm.formatter !== undefined) ]。 colmodel 中的 name 属性也是一个整数,如 "51" 或 "52" 带双引号。将整数作为名称属性的原因是我一直在使用 quickbase,它是数据库中数据的字段 ID。我一直在使用 quickbase api 单独获取数据,并且使用本地数据类型作为特定数据的集成是格式 var data = {["51" : "USA", "52" : "BID done" ,"53" : "Paid"]}
-
您使用哪个
datatype?如果您使用datatype: "json",那么您可以使用colModel的jsonmap属性。它指定输入属性的值。顺便说一句,var data = {["51" : "USA", "52" : "BID done" ,"53" : "Paid"]}有语法错误。你的意思可能是 `var data = [{"51" : "USA", "52" : "BID done" ,"53" : "Paid"}]. I don't recommend you to use numbers as the value ofname 属性在colModel。从那里您可能只会遇到其他问题。可以轻松使用name值,这些值对应于 CSS 的id规则。确切的实现(如jsonmap)取决于细节。
标签: jqgrid