2016-04-04 5 views
0

Предположим, у меня есть Gridview с несколькими строками. У меня есть два столбца с раскрывающимися списками. Мой вопрос заключается в том, чтобы найти RowIndex GridView, когда SelectedIndexChanged Событие GridView происходит из одного раскрывающегося списка, так что я могу применить функциональность другого раскрывающегося списка в той же строке (также прочитайте комментарий). Пример кода приведена здесь:DropDownList в 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"); 
    } 
} 

ответ

1

Вы можете получить GridView следующим образом:

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

Изменение EventArgs к DataGridViewCellEventArgs, и вы будете иметь возможность получить строку из e

Таким образом, ваш метод становится:

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

это не сработало! Ошибка в строке DataGridViewCellEventArgs –

Смежные вопросы