функция onClick кнопки, находящейся в строке таблицы данных - extjs - PullRequest
0 голосов
/ 20 августа 2011

Я поместил кнопку в сетку данных со следующим кодом

столбец есть;

var avaliableAction = {
header : "Action",
width : 120,
sortable : true,
align : "left",
dataIndex : 'status',
renderer : statusRenderer
};

сетка данных есть;

var mainJobsGrid = new Ext.grid.GridPanel({
    store : jobsStore,
    columns : [ avaliableAction ],
    viewConfig : {
            forcefit : true
    },
    title : 'Data Mart Jobs',
    height : 198,
    width : 540,
    frame : true
});

рендерер есть;

function statusRenderer(value, id, r) {
    var START_ICON = '/etlscheduler/resources/images/start-icon.png';
    var STOP_ICON = '/etlscheduler/resources/images/stop-icon.png';
    if (value == "STOPPED") {
        return "<input type='button' class='btnStart' onClick='doStart(); '>";
    } else if (value == "RUNNING" || value == "WAITING") {
        return "<input type='button' class='btnStop' onClick='doStop();'>";
    }
};

и

function doStop() { ... }
function doStart() { ... }

Проблема в том, что когда я нажимаю кнопку, возникает исключение как «doStop не определен»

Ответы [ 2 ]

1 голос
/ 20 августа 2011

кажется, что вам нужно определить функцию

function doStop() { ... }
0 голосов
/ 16 февраля 2013

Я столкнулся с той же проблемой, и это была не опечатка! я заметил, что реализация вызываемой функции работает только в том случае, если она была вне "Ext.onReady (function () {}".

Если кто-то сталкивается с той же проблемой, я решил ее, написав следующую функцию:

Ext.the_function = function () {...}

вместо:

var the_function = function () {...}

Это решит проблему и будет работать там, где вы ее поместите!

...