none
請問可否將GridView內某個欄位的寬設為0? RRS feed

  • 問題

  • 請問各位大大!

    要如何將GridView內指定的欄位隱藏或設為零?

    因為我目前的功能需求,是要將指定的欄位即時隱藏打開?

    目前尚未找到方法?

     

    2008年2月1日 上午 06:42

解答

  • 可以透過css的設定方式

    先在css的資料中加上

    Code Snippet
    .NoSee
    {
     display:none;

     

     

     

    在vb的程式

    Code Snippet
    gridview1.Columns(1).HeaderStyle.CssClass = "NoSee"

    gridview1.Columns(1).ItemStyle.CssClass = "NoSee"

     

     

    以上方式,可以透過javascript方式切換顯示與否。

     

    2008年2月1日 上午 07:44

所有回覆

  • 可以透過css的設定方式

    先在css的資料中加上

    Code Snippet
    .NoSee
    {
     display:none;

     

     

     

    在vb的程式

    Code Snippet
    gridview1.Columns(1).HeaderStyle.CssClass = "NoSee"

    gridview1.Columns(1).ItemStyle.CssClass = "NoSee"

     

     

    以上方式,可以透過javascript方式切換顯示與否。

     

    2008年2月1日 上午 07:44
  • 請問大估!

     

    因為我的Gridview是用DataSource接收DataTable的

    所以Gridview1.Colums.Count都為零,

    請問我該如何以程式建立Columns欄位,

    還是有其他方法呢?

     

    2008年2月1日 上午 09:49
  •  

    你可以試著將 GridView 的 AutoGenerateColumn 屬性為 True

     

    ----
    From: Will
    Blog: http://blog.miniasp.com/
    記載著 Will 在網路世界的學習心得與技術分享

    2008年2月1日 上午 11:16
  • Will 保哥兄..

     

    有設過,還是一樣耶...

    看來要用迴圈一個一個設了...

     

    2008年2月1日 下午 03:41
  • 兩個方法:

     

    若將 AutoGenerateColumn 屬性為 True,你可以動態控制 DataSource 中的 Select 命令,決定 Selected Field 是哪些。如果你的情況不複雜,可以乾脆製作兩個或幾個 DataSource,再動態決定使用哪一個作為 GridView 的 DataSource。

     

    第二,你可以在 GridView 的 RowDataBound 或類似的事件中寫程式決定哪個 Column 的 Width 等於 0。

     

    不過我個人比較偏好使用第一種方法。其實不管你使用何種方法,你都應該可以從本討論區以前的討論中找到答案。

    2008年2月1日 下午 04:37
  • 可是如上的問題

    Code Snippet

    因為我的Gridview是用DataSource接收DataTable的

    所以Gridview1.Colums.Count都為零,

     

     

    所以只要指定哪個Colums[1]--->都會錯誤

    不知道為甚麼?

     

    2008年2月2日 下午 04:02
  •  

    如是動態產生的欄位,則要改成下面寫法

     

    可以透過css的設定方式

    先在css的資料中加上

    Code Snippet
    {
     display:none;

     

     

    vb的程式,在RowDataBound寫做處理

     

    Code Snippet
    Protected Sub gridview1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gridview1.RowDataBound
               e.Row.Cells(0).ControlStyle.CssClass = "NoSee"
       End Sub

     

     

    以上

     

    不過個人感覺以Johnny.Net 大大所提的方式較活用。

    2008年2月5日 上午 02:56