2013-01-13 3 views
2

J'essaie de trouver un moyen de rendre une ligne entière clikable. Les didacticiels que j'ai trouvés jusqu'à présent utilisent l'élément visible sur la table pour créer le lien pour chaque ligne. Par exempleWebgrid: Obtenir l'élément de modèle sur la ligne cliquez sur

$(function(){ 
    $('tbody tr').live('hover', function(){ 
     $(this).toggleClass('clickable'); 
    }).live('click', function(){ 
     location.href = '/Details/' + $(this).find('td:first').text(); 
    }); 
}); 

Il utilise l'élément de modèle stocké dans la balise html td pour chaque ligne. Toutefois, je souhaite pouvoir utiliser un élément non stocké sur la table, mais dans l'élément de modèle représenté par cette ligne. Je veux utiliser un identifiant que je ne veux pas présent sur la table. Par exemple, disons que ma grille Web utilise un modèle qui contient les paramètres SSN, Prénom et Nom. Mais mon webgrid ne montre que FirstNmae et Lastname. Je souhaite que les lignes soient cliquables, mais utilisez le SSN pour créer l'emplacement du lien sur le clic.

J'ai pensé à inclure une colonne cachée dans laquelle je passe l'identifiant. Cependant, les colonnes cachées créent de l'espace supplémentaire sur la table, bien qu'elles ne soient pas visibles. et je ne veux pas ça.

Comment puis-je y parvenir? Comment puis-je obtenir une valeur dans le modèle mais pas sur la table quand une ligne est cliquée. Est-il possible de définir une de mes colonnes avec un identifiant qui sera l'élément du modèle que je veux utiliser pour créer le lien sur la ligne click?

+0

S'il vous plaît, arrêtez de faire référence à "ASP.NET MVC" simplement comme "MVC". L'un est un cadre, tandis que l'autre est un modèle de conception indépendant du langage. C'est comme si on appelait IE - "Internet" –

Répondre

0

Vous n'avez pas besoin d'afficher la valeur, mais vous devrez évidemment pouvoir y accéder, comme vous semblez l'avoir indiqué. Vous pouvez l'appliquer comme valeur d'attribut id d'un élément de la ligne par exemple ou vous pouvez utiliser un champ de formulaire masqué. Ou, si vous travaillez avec le doctype HTML5, vous pouvez utiliser custom data attributes

+0

Les champs de formulaire masqués vont recevoir un peu d'espace supplémentaire bien qu'ils soient cachés. J'espérais ne pas avoir cet espace. Comment puis-je l'appliquer en tant qu'attribut id? Je veux dire, comment puis-je spécifier l'attribut id d'une colonne? – jpo

+0

Les champs de formulaire masqués ne doivent pas affecter la mise en page. Vous ne pouvez pas ajouter d'attributs d'ID aux colonnes WebGrid. L'API ne le permet pas. Vous pouvez ajouter un span à l'une des colonnes du paramètre format et lui appliquer un identifiant. –

Questions connexes