2009-06-25 6 views
0

J'utilise jQuery pour mettre en cache une référence à la ligne sélectionnée dans les enregistrements très grande table (500+) comme celui-ci:Comment puis-je obtenir le GridView pour le rendre est sélectionné Ligne avec et ID au lieu d'une classe

$selectedItem = $('.GridSelectedItem', $table); 

Cette table est générée par un GridView avec son ensemble SelectedRowStyle, qui donne à ma ligne la classe css correcte. Je voudrais utiliser à la place une carte d'identité de la marque pour que je puisse retrouver la ligne sélectionnée comme ceci:

$selectedItem = $('#GridSelectedItem'); 

Ce qui est beaucoup plus rapide. Quelqu'un at-il un indice sur la façon dont je peux masser le GridView pour produire cela pour moi?

Répondre

0

Je ne pense pas que ce soit possible (peut-être que ce sera possible avec le nouveau ClientIdMode of ASP.NET 4.0). Pour l'instant, peut-être que vous pourriez utiliser un répéteur au lieu de GridView et rendre la rangée du tableau (y compris l'ID) par vous-même.

0

Je pense que vous devez capturer la ligne sélectionnée lorsque l'événement SelectedIndexChanged se déclenche au lieu de le retrouver après. Quelque chose comme:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    this.HiddenField1.Value = this.GridView1.SelectedIndex.ToString(); 
} 

Et puis quand vous voulez l'utiliser, vous prendriez l'index de la ligne du champ caché:

function findSelectedRow() { 
     var hf = $("#<%= hfSelectedRow.ClientID %>"); 
     var table = $("#<%= GridView1.ClientID %>"); 
     var row = table[0].rows[hf.val()]; 
     // do something with the row. 
     return false; 
    } 
Questions connexes