2019年10月6日 星期日

[研究][C#][ASP.NET] GridView 的 row.Cells[x].Text 抓不到值

[研究][C#][ASP.NET] GridView 的 row.Cells[x].Text 抓不到值

2019-10-06


string A1 = row.Cells[1].Text.Trim();  // 只能抓 BoundField 的值

//string A2 = row.Cells[2].Text.Trim();  // 只能抓 BoundField 的值,轉成 TemplateField 的抓不到

string A2 = ((Label)row.Cells[2].FindControl("Label_A2")).Text.Trim();  // 抓 TemplateField 的值


********************************************************************************

GridView 抓某橫列中某欄位值,有幾種方法:

1. Cells[x].Text。
2. e.Row.Cells[x].FindControl("YourcontrolName")
3. (DataRowView)e.Row.DataItem).Row.ItemArray[x].ToString()
4. DataBinder.Eval(e.Row.DataItem, "YourDataFieldName").ToString()
5. 將e.Row.DataItem 轉成自定義類型

在RowDataBound事件中


if (e.Row.RowType == DataControlRowType.DataRow) //判斷是否為資料列 or 標題列;
{
  DataRowView drv = (DataRowView)e.Row.DataItem;
  string haveimg = drv["IsVIP"].ToString();
  string uid = drv["UId"].ToString();
}



if (e.Row.RowType == DataControlRowType.DataRow) //判斷是否為資料列 or 標題列;
{
  string haveimg = DataBinder.Eval(e.Row.DataItem , "IsVIP").ToString();
}


(完)

沒有留言:

張貼留言