2011-08-20 34 views
0

我已經把一個按鈕上一個DataGrid用下面的代碼的onClick函數是在DataGrid行 - ExtJS的

列;

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

data grid is;

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

renderer is;

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沒有定義」

回答

1

好像你需要定義函數

function doStop() { ... } 
+0

我已經定義了它,上面的所有代碼都在同一個javascript文件中 – dursun

+0

我已經檢查過它againg。我認爲我有錯字感謝。 – dursun

+0

認爲這太容易了:),感謝您更新代碼。也許你應該發佈bntStop和btnStart類。它是否曾經顯示「已停止」並確實開始工作? –

0

我面臨同樣的問題,它不是一個錯字!我注意到被調用函數的實現只在外部函數「Ext.onReady(function(){}」)之外才起作用。

如果有人遇到同樣的問題,我通過編寫如下函數來解決它:

Ext.the_function =函數(){...}

代替:

VAR the_function =函數(){...}

這將解決這個問題,它將工作在任何地方!