extjs 3 - добавить индикатор выполнения и изображение в сетку свойств

Можно ли реализовать индикатор выполнения в сетке свойств в extjs 3? Как добавить изображение в сетку свойств?

У меня есть значение в процентах, и я хочу представить это в индикаторе выполнения (его нельзя редактировать).

Большое спасибо за помощь.


person user427969    schedule 12.05.2011    source источник


Ответы (2)


Вы можете попробовать что-то вроде этого:

//==== Progress bar 1 ====
var pbar1 = new Ext.ProgressBar({
    id:'pbar1',
    width:300
});

var grid = new Ext.grid.PropertyGrid({
  title: 'Properties Grid',
  autoHeight: true,
  width: 300,
  renderTo: 'grid-ct',
  bbar: pbar1, //You can set the progress bar as the property girds bottom toolbar.
  customRenderers: {
    Available: function(v){
         return '<img src="path to image" />';
    }
  }, //This would render the image into the Available property.
  source: {
      "(name)": "My Object",
      "Created": new Date(Date.parse('10/15/2006')),
      "Available": false,
      "Version": .01,
      "Description": "A test object"
  }
});

При использовании customRenderers для рендеринга изображения
The name of the renderer type should correspond with the name of the property that it will render Дополнительную информацию см. в API.

person shane87    schedule 12.05.2011
comment
привет спасибо за ответ. Изображение в сетке свойств отлично работает (сделайте c маленьким в CustomRenders). Но есть ли другой способ добавить индикатор выполнения в сетку свойств? Я хочу добавить его как значение. На данный момент я просто использую изображение в качестве индикатора выполнения. С Уважением - person user427969; 13.05.2011
comment
Я не знал, что вы на самом деле добавляете индикатор выполнения в ячейку в сетке свойств. Я не уверен, что ты сможешь это сделать. Если я что-то придумаю, я напишу здесь. - person shane87; 13.05.2011

Это первое, о чем я подумал. Но это по-прежнему не так удобно для пользователя, как рендеринг полос прогресса после рендеринга сетки.

Это пользовательский рендерер для вашего столбца прогресса:

renderer: function( value, metaData, record, rowIndex, colIndex, store ) {
                var id = Ext.id();
                (function(){
                    var progress = new Ext.ProgressBar({
                        renderTo: id,
                        value: progress_value
                    });
                }).defer(25);
                return '<div id="'+ id + '"></div>';
            }

Он отображает <div id="generated-id"/>, а затем отображает сгенерированный индикатор выполнения в этот div.

Было бы лучше использовать какое-то замыкание, чтобы создать индикатор прогресса только один раз и вернуть его html через собственный рендерер, как в примере выше, но, к сожалению, я пока не знаю, как это сделать в Ext.js 3. Что касается Ext .js 4 вы можете увидеть эту тему по адресу сенча форум

person sepulchered    schedule 17.12.2012