zoukankan      html  css  js  c++  java
  • 转: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

  • 相关阅读:
    关于virtualbox配置centos7的网络问题
    centos7在命令行下安装图形界面
    ajax后台返回指定的错误码
    h5前端animate等js特效问题汇总
    tp5中的input助手函数
    使网页滑动效果更加流畅
    关于vagrant环境下项目中图片缓存的问题
    h5图片预览功能
    微信jssdk遇到的一些问题汇总
    curl请求curl_exec返回false,curl_error返回空
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1700261.html
Copyright © 2011-2022 走看看