隱藏或顯示GridView控件列 Version 2


前一版本:http://www.cnblogs.com/insus/archive/2013/05/01/3052722.html 此版本是GridView是自義列,即是AutoGenerateColumns="false"

本篇版本是演示GridView的屬性AutoGenerateColumns="true" 。不管怎樣,先來看看最終的效果吧:



哇,是怎樣實現的?
先在站點准備好一個對象,由於沒有經數據庫,只有准備好對象,來存儲數據了。Insus.NET想,此點你沒有什么問題才對。

Insus.NET.CollectionObject
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for CollectionObject
/// </summary>
namespace Insus.NET
{
    public class CollectionObject
    {
        private string _Field1;
        private string _Field2;
        private string _Field3;
        private string _Field4;
        private string _Field5;
        private string _Field6;


        public string Field1
        {
            get { return _Field1; }
            set { _Field1 = value; }
        }
        public string Field2
        {
            get { return _Field2; }
            set { _Field2 = value; }
        }
        public string Field3
        {
            get { return _Field3; }
            set { _Field3 = value; }
        }
        public string Field4
        {
            get { return _Field4; }
            set { _Field4 = value; }
        }
        public string Field5
        {
            get { return _Field5; }
            set { _Field5 = value; }
        }
        public string Field6
        {
            get { return _Field6; }
            set { _Field6 = value; }
        }

        public CollectionObject()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public CollectionObject(string field1, string field2, string field3, string field4, string field5, string field6)
        {
            this._Field1 = field1;
            this._Field2 = field2;
            this._Field3 = field3;
            this._Field4 = field4;
            this._Field5 = field5;
            this._Field6 = field6;
        }
    }
}


對象寫好了,那接下來是填充數據入這個對象中,如果你在網頁中准備,得先引用命名空間usingInsus.NET因為寫類別時,就添加有此命名空間。

View Code
 private List<CollectionObject> GetCollectionObject()
    {
        List<CollectionObject> co = new List<CollectionObject>();
        co.Add(new CollectionObject("row 1 column1", "row 1 column2", "row 1 column3", "row 1 column4", "row 1 column5", "row 1 column6"));
        co.Add(new CollectionObject("row 2 column1", "row 2 column2", "row 2 column3", "row 2 column4", "row 2 column5", "row 2 column6"));
        co.Add(new CollectionObject("row 3 column1", "row 3 column2", "row 3 column3", "row 3 column4", "row 3 column5", "row 3 column6"));
        co.Add(new CollectionObject("row 4 column1", "row 4 column2", "row 4 column3", "row 4 column4", "row 4 column5", "row 4 column6"));
        co.Add(new CollectionObject("row 5 column1", "row 5 column2", "row 5 column3", "row 5 column4", "row 5 column5", "row 5 column6"));
        return co;
    }


OK,你在網頁的.aspx中,拉一個Gridview控件:

 <asp:GridView ID="GridView1" runat="server"></asp:GridView>


然后去,后台.aspx.cs寫綁定數據給這個GridView 控件。

 

下面開始實現列隱藏與顯示功能:
在.aspx網頁中放一個DropDownList控件:



開發ASP.NET網頁,就是不停在.aspx 與.aspx.cs之間切換寫程序。現在去.aspx.cs寫DropDownList控件的OnSelectedIndexChanged事件。寫此事件之前,先寫一個函數,就是隱藏GridView列的函數:



下面是寫到OnSelectedIndexChanged事件:

 

完成了,理論方面,不必多過講解,代碼相信你可以一目了然。有關這個功能,如果你有任何問題,可以留言。謝謝。

 

以下內容於2013-05-09 12:55補充:
上面方法,把GridView改為AutoGenerateColumns="false" 也行喔!

View Code
<asp:GridView ID="GridView1" runat="server"  AutoGenerateColumns="false" >
                <Columns>
                    <asp:BoundField DataField="Field1"  HeaderText="Field1" />
                    <asp:BoundField DataField="Field2"   HeaderText="Field2"/>
                    <asp:BoundField DataField="Field3"   HeaderText="Field3"/>
                    <asp:BoundField DataField="Field4"   HeaderText="Field4"/>
                    <asp:BoundField DataField="Field5"   HeaderText="Field5"/>
                    <asp:BoundField DataField="Field6"   HeaderText="Field6"/>
                </Columns>
            </asp:GridView>


 或是如下寫法也沒有問題:

View Code
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
                <Columns>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Field1
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%# Eval("Field1") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Field2
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%# Eval("Field2") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Field3
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%# Eval("Field3") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Field4
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%# Eval("Field4") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Field5
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%# Eval("Field5") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Field6
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%# Eval("Field6") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>


可以說得上此方法完全替代第一個版本。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM