2016-04-04 11 views
0

Angenommen, ich habe eine Gridview mit einigen Zeilen. Ich habe zwei Spalten mit Dropdown-Listen. Meine Frage ist, den RowIndex einer GridView zu finden, wenn SelectedIndexChanged Event von GridView von einer Dropdown-Liste auftritt, so dass ich die Funktionalität einer anderen Dropdown-Liste in derselben Zeile anwenden kann (Lesen Sie den Kommentar auch). Beispielcode ist hier aufgelistet:DropDownList in einer GridView

protected void dropdown1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    // I want the row index so that i can apply the functionality in same row 
    // If this doesn't work, any alternative ? 
} 


protected void func() 
{ 
    DataTable dt = (DataTable)ViewState["CurrentTable"] 
    for(int i = 0; i<dt.Rows.Count; i++) 
    { 
     DropdownList d1 = (DropDownList)GridView1.Rows[i].Cells[0].FindControl("dropdown1"); 
     DropdownList d2 = (DropDownList)GridView1.Rows[i].Cells[1].FindControl("dropdown2"); 
    } 
} 

Antwort

1

Sie das bekommen GridView Zeile auf diese Weise:

protected void dropdown1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList dropdown1 = sender as DropDownList; 
    GridViewRow row = dropdown1.NamingContainer as GridViewRow; 
    // Do something with row or with row.RowIndex 
} 
0

ändern EventArgs-DataGridViewCellEventArgs und Sie werden in der Lage die Zeile aus e

So Ihre Methode wird zu bekommen:

protected void dropdown1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int row = e.RowIndex; 
} 
+0

es hat nicht funktioniert! Fehler in Zeile DataGridViewCellEventArgs –

Verwandte Themen