2008年3月26日 星期三

如何取得Gridview 隱藏欄位的值

在某些時候,我們會想利用Gridview的欄位來放Postback後要用到的資料,但又不想讓這些欄位顯示出來,這時候你可以在 GridView1_RowCreated 這個event,將這些欄位的visible 設成 false,如此在 Postback 時就可以取得這些欄位的值,範例如下:

if ((e.Row.RowType == DataControlRowType.Header e.Row.RowType == DataControlRowType.DataRow) && e.Row.Cells.Count>11)
{
e.Row.Cells[8].Visible = false;
e.Row.Cells[9].Visible = false;
e.Row.Cells[10].Visible = false;
e.Row.Cells[11].Visible = false;
}

  1. 注意:不可以在Design time時將這些欄位的Visible設成false,因為這樣你會取得空值。
  2. asp.net會將這些欄位值放在viewstate內,所以如果有些資料是不能給User看到的,就不適合這樣作,如果一定要,那你就必須將viewstate 加密。

沒有留言: