Проблема 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
}
  1. string lstnme = ((TextBox)row.Cells[2].FindControl("txtLstNme")).Text;в основном это означает, что он находит элемент управления с именем как txtLstNme в ваших ячейках, а затем возвращает текст внутри этого элемента управления textbox.

  2. string lstnme=((TextBox)row.Cells[2].Controls[0]).Text;это означает, что lstnme будет содержать текст элемента управления в позиции 0 в ваших ячейках.

1-ая основная разность ищет текстовое поле [в текстовом поле списка элементов управления, но вторая получает текст элемента управления в местоположении 0.

Другие вопросы по тегам