ExtJS - Открыть вкладку, нажав на ссылку в GridPanel (средство визуализации столбцов) - PullRequest
0 голосов
/ 29 октября 2010

Я создал ссылку на панели сетки, чтобы при нажатии на ссылку она открывала еще одну вкладку на панели вкладок. В настоящее время я отображаю вывод ячейки столбца в html href с событием onClick . Но, похоже, возникла ошибка, когда метод рендерера openrender () вызывает другой метод newtab () , который не может найти функцию ошибки newtab () . Возможно, из-за события onClick можно вызывать только методы / функции вне "Ext.onReady (function () {" блока? Кто-нибудь знает решение для это, любая помощь очень ценится, спасибо.

Или, если у вас есть другие способы достижения той же цели, также не стесняйтесь делиться. Спасибо.


function newtab(state,ptt,status){
    tabs.add({
        title: 'Order List Detail',
                iconCls: 'tabs',
                items: [
                new Ext.Panel({
                    height: 40,
                    html: 'some html'
                })
                ,layout: 'fit'
        }).show();

}

function openrender(value, p, record){
    return String.format('<a <href="#" onClick="newtab(\'{1}\',\'{2}\',\'{3}\')">{0}</a></b>',value, record.data.state, record.data.ptt, 'Open');
}

var grid = new Ext.grid.GridPanel({
frame:true,
title: 'Pending Orders',
layout: 'fit',
store: catstore,
stripeRows: true,
loadMask: true,
iconCls: 'grid',
tbar: [{
        text: 'Category',
        xtype: 'label'
    }
],
columns: [
{header: "State Name", dataIndex: 'state', sortable: true},
{header: "PTT Name", dataIndex: 'ptt', sortable: true},
{header: "Open", dataIndex: 'openstatus', sortable: true, renderer: openrender}
]
});

1 Ответ

0 голосов
/ 01 ноября 2010

ну, я только что нашел другой обходной путь, используя слушателя gridclick

<code></p>

<p>var grid = new Ext.grid.GridPanel({
frame:true,
title: 'Pending Orders',
layout: 'fit',
store: catstore,
stripeRows: true,
loadMask: true,
iconCls: 'grid',
tbar: [{
        text: 'Category',
  xtype: 'label'
    }
],
columns: [
{header: "State Name", dataIndex: 'state', sortable: true},
{header: "PTT Name", dataIndex: 'ptt', sortable: true},
{header: "Open", dataIndex: 'openstatus', sortable: true, renderer: openrender}
],
listeners:{
 cellclick: function(grid, rowIndex, columnIndex) {
  // Get the Record for the row
        var record = grid.getStore().getAt(rowIndex);
        // Get field name for the column
        var fieldName = grid.getColumnModel().getDataIndex(columnIndex);</p>

<p>if(fieldName == 'openstatus')
   newtab(record.data.state, record.data.ptt, 'Open');
 }
}
});</p>

<p>
...