Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 外部存储返回错误记录_Javascript_Extjs - Fatal编程技术网

Javascript 外部存储返回错误记录

Javascript 外部存储返回错误记录,javascript,extjs,Javascript,Extjs,我有一个ExtJS存储,它作为一个代码列表工作,并包含带有标签和值的记录。此外,我还有一个网格列,其列渲染器使用存储的方法findRecord(field,value)查找存储中的值,然后显示相应的标签: renderer: function(value, metaData, record, rowIndex, colIndex, store, view){ var columnName = view.panel.columns[colIndex].name; var display =

我有一个ExtJS存储,它作为一个代码列表工作,并包含带有标签和值的记录。此外,我还有一个网格列,其列渲染器使用存储的方法findRecord(field,value)查找存储中的值,然后显示相应的标签:

renderer: function(value, metaData, record, rowIndex, colIndex, store, view){
  var columnName = view.panel.columns[colIndex].name;
  var display = value;
  if(columnName){
    var clString = "cl_t_cl_" + columnName; 
    var cl = Ext.getStore(clString);
    if(cl){
      var rec = cl.findRecord("value", value);
      display = rec ? rec.get("label") : value;
    }
  } else if(record.get("label") !== undefined) {
    display = record.get("label");
  }
  return display;
}
但是,在某些情况下,网格中会显示错误的标签。例如,如果我有两条记录(9,‘标签A’)和(99,‘标签B’),网格将显示原始值为9的‘标签B’

我的第一个猜测是,该值是逐令牌查找的,并且只要在记录的值中找到搜索令牌,就返回标签,不管它是否完全匹配(即,99中的前9个将满足搜索过程,以便返回相应的记录)。但是,将同一存储分配给一个组合框,该组合框显示相同值的正确标签


这种行为让我感到困惑,我想知道为什么列渲染器无法查找正确的标签,而组合框却无法。更重要的是,我想解决这个问题,但不知道什么可能导致问题。关于Ext.Store,我缺少什么可以解释这种奇怪的行为吗?

不确定您使用的是哪个版本的ExtJS,但第六个参数是
exactMatch
,因为至少是ExtJS 4.2。如果将该参数设置为true,它应该可以工作

var rec = cl.findRecord("value", value, undefined, undefined, undefined, true);

非常感谢。几分钟前我自己刚找到的,也许我应该更简洁地阅读文档。。。