2012-08-29 23 views
0

在我的網格中,我應該能夠根據從webservice返回的狀態複選框和字符串數據。現在我正在編寫下面給出的自定義渲染器函數: 功能customcolumn1(值,元數據記錄){一列中包含字符串數據和extjs4.1中的複選框

var completedTime = record.get('nccompletedTime'); 
    var completedByLastName = record.get('nccompletedByLastName'); 
    var completedByFirstName = record.get('nccompletedByFirstName'); 
    if (value == 'Completed') { 
     return completedTime + " " + completedByLastName + "," + completedByFirstName; 
    } else if (value == 'Pending') { 
     return "<input type='checkbox' disabled>"; 
    } else if (value == 'Assigned') { 
     return "<input type='checkbox'>"; 
    } 
} 

和電網是

var SAFjobgrid = Ext.create('Ext.grid.Panel', { 
    store: store, 
    columns: [ 
     { 
     text: "", 
     width: 30, 
     renderer: customSeqNumber, 
     dataIndex: 'sequenceNumber'}, 
    { 
     text: "Task", 
     width: 350, 
     renderer: customTask, 
     dataIndex: 'label'}, 
    { 
     text: "Complete", 
     width: 160, 
     renderer: customcolumn2, 
     dataIndex: 'stampActionStatus'}, 
    { 
     text: "Verified", 
     width: 160, 
     renderer: customcolumn, 
     dataIndex: 'verifyActionStatus'}, 
    { 
     text: "Non Compliance", 
     flex: 1, 
     renderer: customcolumn1, 
     dataIndex: 'ncActionStatus'} 

    ] 
}); 

現在我要檢查的複選框,並捕捉那些records.And的stampIds當我點擊更新按鈕,位於網格外側,我是應該能夠通過捕獲的stampId調用web服務。我試圖在複選框上放置onclick事件,同時從渲染器函數返回。但是,我應該如何訪問該記錄的stampId。如果我選​​擇多個複選框,多個stampid應該轉到webservice如果我取消選中該複選框,則應從stampId中刪除相應的stampid。 任何人都可以幫助在這一個..

回答

0

你可以看一下CheckColumn用戶分機http://docs.sencha.com/ext-js/4-1/#!/api/Ext.ux.CheckColumn但在你的情況,你必須重寫渲染方法這樣

renderer : function(value, meta, record){ 
    var cssPrefix = Ext.baseCSSPrefix, 
     cls = [cssPrefix + 'grid-checkheader'], 
     completedTime = record.get('nccompletedTime'), 
     completedByLastName = record.get('nccompletedByLastName'), 
     completedByFirstName = record.get('nccompletedByFirstName'); 

    if (value == 'Completed') { 
     //render string instead of checkbox 
     return Ext.String.format('{0} {1},{2}', completedTime, completedByLastName, completedByFirstName); 
    } 

    if (value === 'Assigned') { 
     cls.push(cssPrefix + 'grid-checkheader-checked'); 
    } 
    //render checkbox stub, 
    //it is actually a div element with special css classes to simulate checkbox 
    return '<div class="' + cls.join(' ') + '">&#160;</div>'; 
} 

收集人選中/取消您行可以使用此商店方法http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.AbstractStore-method-getUpdatedRecords 它返回已更新的模型的數組,通過選中/取消選中此列

相關問題