extjs - 按 ExtJS 3 EditorGridPanel 中呈现的值排序

标签 extjs extjs3

我是 Ext 的新手,所以如果我的问题不够清楚/太基本,我提前道歉......

我有一个带有 Ext.data.Store 和 Ext.data.JsonReader 的 Ext.grid.EditorGridPanel。

我有以下问题:

我想让我的网格中的列可排序,但从我的商店返回的值不是我想排序的值(返回的值是一个 ID,我想按此 ID 映射到的字符串排序)。

我有一个渲染函数,可以在这个 ID 和字符串值之间进行转换,但我不知道如何将它集成到我的代码中。

我找到了这个帖子:

http://www.sencha.com/forum/showthread.php?45324-Grid-column-sorting-on-rendered-value

这看起来与我的需要相似,但是当我尝试添加时:

{name: 'my_field', sortType: my_render_function}

对于我的 JsonReader,它不起作用。

我在哪里弄错了?

谢谢。

对于佩特的要求:
var my_render = function(val, metaData, record, rowIndex, colIndex, store){
   if (val == null) 
       return '';
   var n = another_store.getById(val);
   if (n == null) 
       return '';
   return n.data.name;
};

var my_reader = new Ext.data.JsonReader({
   root: 'my_root',
   id: 'tissue_num',
   }, [{
   name: 'tissue_num',
   type: 'int'
   }, 'tissue_desc', 'organ']
);

var my_store = new Ext.data.Store({
url: request_url,
baseParams: {
    _state: request_state,
    _action: 'get_conditions'
},
sortInfo: {
    field: 'tissue_num',
    direction: "ASC"
},
reader: my_reader,
pruneModifiedRecords: true
});

最佳答案

由于您想要的不仅仅是显示转换,我不会在这里使用渲染器,而是 convert 记录定义中的数据。

val convertName = function(val, rec) {
   // val will always be null since there's no field named 'name'
   var id = rec.data.tissue_num;
   if (id == null) 
       return '';
   var n = another_store.getById(id);
   if (n == null) 
       return '';
   return n.data.name;
};

var my_reader = new Ext.data.JsonReader({
   root: 'my_root',
   id: 'tissue_num',
   }, [{
   name: 'tissue_num',
   type: 'int'
   }, {name: 'name', convert: convertName},
   'tissue_desc', 'organ']
);

这将为您提供 name 中的数据记录。您可以对从服务器获得的实际数据做任何您可以做的事情——排序、过滤、显示等。

关于extjs - 按 ExtJS 3 EditorGridPanel 中呈现的值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772351/

相关文章:

javascript - 在几个文件中拆分 JavaScript 代码 : best practices

css - 从现有样式继承 CSS。 Extjs4 沙箱

javascript - 如何从文本字段获取值并读取按键事件

javascript - Ext JS - 如何滚动到文本区域的底部

Extjs 3.4 checkchange 监听器不适用于 Checkcolumn

javascript - 在 extJS 4 中增加 htmlEditor 的高度

javascript - Extjs4 转换组合框不会在表单提交时发送 value 属性

javascript - 如何获取复选框的值

javascript - ExtJS 4.2.1 : Cannot retrieve HTTP Response headers upon Ext. ajax.request 回调

php - 自定义由 Extjs 自动分配给任何 DOM 元素的 ext-gen id