2010-12-16 4 views
0

J'essaye de construire une colonne d'édition, mais ma routine n'est pas tout à fait correcte pour une raison quelconque. Ma valeur de "magasin" ne retourne rien comme je le pensais.ExtJS - Création de liens hypertexte avec une fonction

Des pensées?

function editLinkRenderer(value, metadata, record, rowIndex, colIndex, store) { 
    if (store == V2020.ServiceStore) 
     return '<a href="javascript:editServices(' + value + ')">Edit</a>'; 
    else if (store == V2020.PriceStore) 
     return '<a href="javascript:editPrice(' + value + ')">Edit</a>'; 
    else if (store == V2020.PromoStore) 
     return '<a href="javascript:editPromo(' + value + ')">Edit</a>'; 
    return "Edit"; 
} 

Je l'utilise dans mes GridPanel comme ceci:

{ header: "Edit", width: 60, dataIndex: 'serviceID', sortable: false, renderer: editLinkRenderer }, 
+0

Je ne vois aucune erreur dans votre code, la seule possibilité que je peux voir est la 'store == V2020.ServiceStore' pour être vrai l'objet doit être la même instance. En utilisant le firebug, le magasin semble-t-il fonctionner? – RageZ

+0

Comment cette fonction est appelée? Si c'est un écouteur à quelque chose comme un EditorGridPanel, vous devez savoir de quel magasin il est appelé. Offhand, je ne peux pas dire quel événement déclencherait cette fonction. –

Répondre

0

Vous pouvez envisager d'utiliser un ActionColumn. De cette façon, vous pouvez le faire:

var items = [ ... ]; // existing items 
if (store.constructEditColumn) { 
    items.push(store.constructEditColumn()); 
} 

Où votre constructEditColumn pourrait ressembler à ceci:

... 

constructEditColumn: function() { 
    return { 
    xtype: 'actioncolumn', 
    items: { 
     text: 'Edit', 
     handler: function() { 
     // do stuff 
     }, 
     scope: this 
    } 
    } 
}, 
... 

Sauf que, je serais méfiant de faire l'égalité dans les magasins. Les deux paramètres sont-ils avant store ints? Pouvez-vous breakpoint et jeter un oeil à savoir si la propriété record.store est ce que vous attendez? Ancienne version de Ext, peut-être, avec une signature différente pour le moteur de rendu?

0

Je vous remercie de jeter un coup d'oeil, mais j'ai compris le problème.

J'avais deux V2020.ServiceStore définis par erreur et le dernier vidait tout.

Questions connexes