如何在Ext Grid Panel中使用href作为列

时间:2011-08-13 09:46:55

标签: extjs4

我正在使用一个网格面板,我需要在其中创建一个列作为链接​​(它应该看起来像链接 - 没有动作)。我正在使用网格面板中的监听器,并点击一个单元格,它的工作正常。唯一的事情是第1列应该看起来像一个链接。但是如何把href =“#”我不确定。这是我的代码:

var addressDetailsStore = Ext.create('Ext.data.Store', {
    id:'addressDetailsStore',
    autoLoad: true,
    fields:
    [
    'addressType', 
    'street1', 
    'street2', 
    'province', 
    'city', 
    'country' 
    ], 
    proxy: {
        type: 'ajax',
        url: 'resources/json/addressDetails.json',  // url that will load data with respect to start and limit params    
        reader: {
            type: 'json',
            root: 'items',
        }
    }


});

Ext.define('iOMS.view.common.addressView', {
extend: 'Ext.grid.Panel',
alias: 'widget.AddressViewPanel',
    layout: 'fit',
    collapsible: true,
    title:'Address',

    store: addressDetailsStore,
    listeners:{
                cellclick:function (iView, iCellEl, iColIdx, iRecord, iRowEl, iRowIdx, iEvent){
// Getting the event and I am doing logic here..

}

我只是想'addressType'列看起来像一个链接,我不知道在哪里放href ... 谢谢你的回复。 -Praveen

3 个答案:

答案 0 :(得分:5)

您还可以使用模板列:

columns: [
    { text: 'External Link', xtype: 'templatecolumn', tpl: '<a href="{url}">{title}</a>'}
]

答案 1 :(得分:3)

您可以指定所需的列,只需添加链接即可添加渲染器。这个例子可能对你有帮助。

var template = new Ext.XTemplate(
        '<a href="#"> </a>').compile();

columns:[
            {
                header: "",
                renderer: function () {
                    return template.applyTemplate();
                }
            },

答案 2 :(得分:0)

您可以使用渲染器功能,如下所示

columns: [
        {
            header: 'number',
            dataIndex: 'number',
            flex: 1,
            renderer: function(number) {
                return Ext.String.format('<a href="#users/{0}">{0}</a>', number);
            }
        },