Проблема GridView в ASP.NET
Я просто хочу знать разницу между двумя последними строками
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
if (GridView1.Rows[e.RowIndex].RowType == DataControlRowType.DataRow)
{
GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
string lstnme = ((TextBox)row.Cells[2].FindControl("txtLstNme")).Text;
а также
string lstnme=((TextBox)row.Cells[2].Controls[0]).Text;
}
2 ответа
Разницы нет, но я бы посоветовал проверить, является ли элемент управления нулевым, или нет, прежде чем присваивать значение Text
string lstnme = string.Empty;
var control = ((TextBox)row.Cells[2].FindControl("txtLstNme"));
if ( control != null )
{
lstnme = control.Text
}
string lstnme = ((TextBox)row.Cells[2].FindControl("txtLstNme")).Text;
в основном это означает, что он находит элемент управления с именем как txtLstNme в ваших ячейках, а затем возвращает текст внутри этого элемента управления textbox.string lstnme=((TextBox)row.Cells[2].Controls[0]).Text;
это означает, что lstnme будет содержать текст элемента управления в позиции 0 в ваших ячейках.
1-ая основная разность ищет текстовое поле [в текстовом поле списка элементов управления, но вторая получает текст элемента управления в местоположении 0.