[英]Jqgrid inline edit displays nbsp; instead of spaces for one column
jqgrid列包含電話號碼。
對於一行,如果已經開始內聯編輯,則
出現字符而不是空格:
之前:
編輯開始后:
保存后 也保存在電話號碼中。 如何解決或診斷這個問題?
如果使用表單編輯,這些字符也會出現。 電話號碼也包含空格的其他行會正確顯示。 該行中的其他列也正確顯示。
此列的共同模型:
{"label":"Telefon","name":"Telefon","index":"Telefon","editoptions":{"maxlength":25,"size":25,"dataEvents":[{"type":"change","fn":function(e) {dataChanged(e.target)}
},{"type":"focus","fn":function(e) {if(typeof e.target.ischanged=='undefined') {e.target.ischanged=false}}
}],"readonly":null,"class":null,"disabled":null},"editable":true,"width":66,"classes":null,"hidden":false,"searchoptions":{"sopt":["cn","eq","ne","lt","le","gt","ge","bw","ew","nc"]},"stype":"text"},
jqgrid是從服務器中的json數據填充的:
{"total":1,"page":1,"rows":[{"id":"7","cell":[null,"","7","XXXanval Mll OÜ","Tarnija","","","","","","","","","","3 725 141 100","","","Ursel","","","","","","","","","","02","",""]}]}
正確填充的其他行包含相似的數據,也許會填充更多的列。
jqgrid設置:
$.extend($.jgrid.defaults, {
mtype: 'POST',
toppager: true,
viewrecords: false,
recordpos: 'center',
pagerpos: 'right',
rowList: [50, 500, 1000],
rowNum: 50,
rownumbers: true,
onSelectRow: grid_onSelectRow,
onSelectAll: grid_onSelectAll,
multiselect: true,
ajaxRowOptions: { async: true },
scrollrows: true,
prmNames: {
id: "_rowid", page: "_page", rows: "_rows", oper: "_oper", sort: "_sidx", order: "_sord",
nd: "_nd"
},
loadui: 'block',
cmTemplate: { fixed: true },
autoencode: true,
gridview: true,
...
該問題存在於您的輸入數據中 。 您提出了不正確的數據。 實際數據已經包含 不間斷空格 。 您的服務器返回的JSON數據不是 "3 725 141 100"
(內部帶有空格,代碼為32或0x20),而是"3 725 141 100"
(內部帶有不間斷空格,其代碼為160)或0xA0)。
HTTP流量中的UTF-8編碼數據看起來像
解碼后的數據看起來像
上圖顯示了以HEX格式顯示的原始JSON數據的片段。 我用綠色標記了標准空間,並用紅色標記了從服務器返回的數據中使用的空間。 要解決該問題,您應該在數據庫,服務器代碼或JavaScript代碼的客戶端中規范化數據。 無論如何,都應將所有不需要的不間斷空間替換為標准空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.