2009-06-25 6 views
0

ich jQuery bin mit einer sehr großen Tabelle (500+) Aufzeichnungen wie diese einen Verweis auf die ausgewählte Zeile cachen:Wie erhalte ich die Gridview machen es Zeile ausgewählt ist mit und ID statt einer Klasse

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

Diese Tabelle wird von einer GridView mit dem SelectedRowStyle-Satz generiert, der meiner Zeile die richtige CSS-Klasse gibt. Ich möchte stattdessen eine ID in der Markierung verwenden, damit ich die ausgewählte Zeile wie folgt lokalisieren kann:

$selectedItem = $('#GridSelectedItem'); 

Das ist wesentlich schneller. Hat jemand einen Hinweis darauf, wie ich den GridView massieren kann, um dies für mich zu produzieren?

Antwort

0

Ich glaube nicht, dass dies möglich ist (vielleicht wird es mit der neuen ClientIdMode of ASP.NET 4.0 möglich).

Jetzt könnten Sie vielleicht einen Repeater anstelle der GridView verwenden und die Tabellenzeile (einschließlich der ID) selbst rendern.

0

Ich denke, Sie müssen die ausgewählte Zeile erfassen, wenn das SelectedIndexChanged -Ereignis ausgelöst wird, anstatt es danach zu finden. Etwas wie:

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

Und dann, wenn Sie es verwenden möchten, würden Sie den Zeilenindex aus dem verborgenen Feld nehmen:

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