C#中GridView隱藏列的方法

一開始解決這個問題的時候,查了google,發現都不是我想要的,在 GridViewColumn中,它有個屬性Width,如果設置爲0,就沒有顯示出來,其實這個是虛假的,你可以把它再界面上拉長,因此不是我想要的。


後來在網上查到說是用GridView.Columns[columns].Visible = false;但是GridViewColumn.Columns[columns]是沒有Visible屬性的,因此這個方法對我來說也是不行的。於是我就想到了用x:Name的方法,這樣來做,

<GridView x:Name="gvGroups">

<GridViewColumn  x:Name="hideitem" />

</GridView>

在代碼裏面用gvGroups.Columns.Remove(hideitem);把它去掉,就不顯示了,

如果想顯示的話,直接gvGroups.Columns.Add(hideitem);不過是把它放在最後的一列去了。

這樣算是解決了隱藏列的問題。


以下列出網上的一些方法,本人沒有嘗試,先記錄下來

======================================================

綁定時直接設置 某列隱藏,會出錯

下面有兩種方法,不僅可以隱藏,還仍然可以正常取值

方法一:
在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事件(隱藏)在綁定時候發生,所以這樣就即能將數據綁定到列上,又隱藏了該列.所
以可以訪問到隱藏列的值

方法二:
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() ;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章