2010-09-16 12 views
1

Je can see comment créer un lien jqGrid en utilisant:Créer un lien jqGrid avec juste l'ID

colModel: [ {name:'myname', 
      formatter:'showlink', 
      formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit'} 

Cela crée une demande comme /someurl.php?id=XX&action=edit et le texte d'affichage sera la valeur de myname.

Mais dans notre cas, nous n'avons pas besoin du texte myname - notre texte d'affichage sera codé en dur. Nous ne voulons pas avoir à transmettre de données supplémentaires dans notre requête JSON - mais il semble que vous ayez besoin d'un attribut JSON pour chaque colonne. Comment pouvons-nous avoir un lien sans la colonne add'l JSON?

Répondre

1

Le formateur 'showlink' comme tous les autres formateurs sont utilisés pour formater les données chargées dans jqGrid à partir du serveur ou des données locales. Donc, dans le cas de votre exemple, vous n'aurez pas le texte 'myname' (le nom de la colonne) dans le lien mais la valeur de la cellule dans la grille.

Donc, si vous voulez utiliser predefined formatter'showlink' vous avez pour remplir les données de colonne avec le texte qui veulent voir dans le lien. Vous pouvez le faire à l'intérieur de vos données JSON ou remplissage/écraser le texte après la page sont chargés, par exemple à l'intérieur de loadComplete poignée d'événement:

loadComplete: function() { 
    var grid = $("list"); 
    var ids = grid.getDataIDs(); 
    for (var i = 0, idCount = ids.length; i < idCount; i++) { 
     grid.setCell(id, 'myname', 'My text for link'); 
    } 
} 

Vous pouvez également utiliser custom formatter et custom unformatter au lieu de 'showlink'predefined formatter. Ensuite, vous pouvez définir le texte du lien comme vous le souhaitez sans remplir de données dans la grille.

+0

Je suis allé avec le formateur personnalisé - merci. –