ASP.NET2.0中GridView控件的隱藏列的問題

 Asp.net2.0GridView隱藏列visible="false" 後你就無法取得這列的值了, 而用datagrid就沒有這個問題, MS這個混蛋老是改變遊戲規則, 幸好我聰明, 在百度上搜到了別人的解決方法, 然後加入了自己的方法, 才解決問題:

以下是引用片段:
  protected void GVList_RowDataBound(object sender, GridViewRowEventArgs e)
  {
  //隱藏不必要的列
   if ((e.Row.RowType == DataControlRowType.DataRow) || (e.Row.RowType == DataControlRowType.Header) || (e.Row.RowType == DataControlRowType.Footer))
  {
  e.Row.Cells[0].Visible = false;
  e.Row.Cells[3].Visible = false;
  }
  }

  這是迄今爲止最簡潔的解決方法了。

  解決方案

  在RowCreated事件中書寫如下代碼:

以下是引用片段:
  void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
  {
  if (e.Row.RowType == DataControlRowType.DataRow ||
  e.Row.RowType == DataControlRowType.Header)
  {
  e.Row.Cells[0].Visible = false; //如果想使第1列不可見,則將它的可見性設爲false
  }
  //可以根據需要設置更多的列
  }

  因爲在RowCreated事件(隱藏)在綁定時候發生,所以這樣就即能將數據綁定到列上,又隱藏了該列.所以可以訪問到隱藏列的值。

  下面介紹另外一個可以將數據綁定到GridView控件的方法:

  

以下是引用片段:
Public void myTestFunction()
  {
  string conString="....";//省略
  string sqlquery="...";//省略
  SqlConnection con = new SqlConnection(conString);
  SqlDataAdapter da = new SqlDataAdapter(sqlquery, con);
  DataSet ds = new DataSet();
  da.Fill(ds);
  ds.Tables[0].Columns[0].ColumnMapping = MappingType.Hidden;
  GridView1.DataSouce = ds.Tables[0];
  GridView1.DataBind() ;
  }

  文章主要講述了ASP.NET2.0中GridView控件的隱藏列的問題.

發佈了64 篇原創文章 · 獲贊 1 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章