• 转:DataView 使用


    DataView 直译是 数据视图。由数据库表(Table)映射到DataTable不难联想到 数据库视图 映射到 DataView。

    数据库中视图是一个虚表,数据库中存储的只是一句查询SQL语句,每次程序访问此视图时,原理类似于执行此SQL语句,生成一个临时表,然后程序再对此临时表操作,结果对实表一样有效。

    视图通常只是为了简化程序的查询操作,允许在一个实表上建立多个视图
    同样的,DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。

    举一个简单例子来说明它的作用。
    有时候你想把DataTable的一部分数据绑定到控件1,而把DataTable的全部数据绑定到控件2,那么利用DataView可以简单地实现。

    下面来看看DataView 的每个功能实现。

    1、排序

        创建一个空页面Default.aspx,在页面中添加一个按钮和一个GridView控件

    <div>
        <asp:Button ID="Button1" runat="server" Text="按id排序" OnClick="Button1_Click" />
        <br />
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </div>
        在后台代码中,我们手动创建一个DataTable数据源,以下的操作都基于此数据源。如下

        //创建数据源
        private DataTable CreateTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("id", typeof(int)));
            dt.Columns.Add(new DataColumn("name", typeof(string)));

            int[] ids ={ 8, 5, 4, 3, 1, 9, 6, 7, 2 };
            DataRow dr;
            for (int i = 0; i < ids.Length; i++)
            {
                dr = dt.NewRow();
                dr[0] = ids[i];
                dr[1] = "not_" + ids[i].ToString();

                dt.Rows.Add(dr);
            }

            return dt;
        }
        在Page_Load中添加如下代码,初使化页面

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (ViewState["data"] == null)
                {
                    ViewState["data"] = CreateTable();
                }

                this.GridView1.DataSource = ViewState["data"] as DataTable;
                this.GridView1.DataBind();
            }
        }
    对Button1的Click事件实现对ID列的排序

        //排序
        protected void Button1_Click(object sender, EventArgs e)
        {
            DataView dv;
            if (ViewState["data"] != null)
            {
                dv = (ViewState["data"] as DataTable).DefaultView;
            }
            else
            {
                dv = CreateTable().DefaultView;
            }
            //字符串不区分大小写
            dv.Sort = "ID ASC";
            this.GridView1.DataSource = dv;
            this.GridView1.DataBind();
        }

    页面运行的初始状态如下

    单击按钮后如下

     

    单击按钮后如下

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bfcady/archive/2009/01/08/3735570.aspx

  • 相关阅读:
    Xcode 6 下添加pch头文件
    兵器簿之github的配置和使用
    sql 2005性能调优
    C#遍历枚举(Enum)值
    使用 jQuery 调用 ASP.NET AJAX Page Method
    强制不使用“兼容性视图”的HTML代码
    HR在ERP实施过程中的作用
    WdatePicker日历添加事件,在任意月改变时处理日期事件
    JQuery实现表格自动增加行,对新行添加事件
    获取元素离文档各边的距离
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1700261.html
Copyright © 2020-2023  润新知