`

asp.net 2.0下一个标准GRIDVIEW功能的实现(不用datasource控件)

    博客分类:
  • .NET
阅读更多

在asp.net 2.0下,gridview是十分方便的了,加一个DATASOURCE系列的控件的话,就可以马上和gridview绑定,十分方便。但其实也可以
使用datatable或者dataview的,这个时候就不是用datasource系列控件了。下面讲下如何在asp.net 2.0下,实现gridview控件的翻页,各列排序,
编辑的功能。
    首先,我们读取的是northwind数据库中的employee表。放置一个gridview后,添加几个绑定的列,代码如下
 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
            AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None"
            Width="100%" DataKeyNames="EmployeeID" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnSorting="GridView1_Sorting" PageSize="3" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowCommand="GridView1_RowCommand">
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <Columns>
                <asp:BoundField DataField="employeeid" HeaderText="Employee ID" ReadOnly="True" />
                <asp:BoundField DataField="firstname" HeaderText="First Name" SortExpression="firstname" />
                <asp:BoundField DataField="lastname" HeaderText="Last Name" SortExpression="lastname" />
                <asp:CommandField ShowEditButton="True" />
            </Columns>
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>

首先,我们要实现分页,把AllowPaging设置为true,并设置每页的分页条数,最后在codebehind中写入
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        BindGrid();
    }
  为了实现每列都可以自动点击排序,可以设置allowsorting=true,然后设置OnSorting="GridView1_Sorting",其中gridview_sorting
代码为
  protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        ViewState["sortexpression"] = e.SortExpression;

        if (ViewState["sortdirection"] == null)
        {
            ViewState["sortdirection"] = "asc";
        }
        else
        {
            if (ViewState["sortdirection"].ToString() == "asc")
            {
                ViewState["sortdirection"] = "desc";
            }
            else
            {
                ViewState["sortdirection"] = "asc";
            }
        }
        BindGrid();
    }
很明显,设置viewsate来保存每次排序时的顺序,上面的相信很容易理解。
     最后,实现编辑功能,因为在aspx页面中已经设置了OnRowEditing="GridView1_RowEditing",其中GridView1_RowEditing的代码为
 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int empid;
        string fname, lname;
        empid = int.Parse(GridView1.Rows[e.RowIndex].Cells[0].Text);
        fname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
        lname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;

        SqlConnection cnn = new SqlConnection(@"data source=localhost;initial catalog=northwind;user id=sa;password=123456");
        cnn.Open();
        SqlCommand cmd = new SqlCommand("update employees set firstname=@fname,lastname=@lname where employeeid=@empid", cnn);
        cmd.Parameters.Add(new SqlParameter("@fname",fname));
        cmd.Parameters.Add(new SqlParameter("@lname", lname));
        cmd.Parameters.Add(new SqlParameter("@empid", empid));
        cmd.ExecuteNonQuery();
        cnn.Close();

        GridView1.EditIndex = -1;
        BindGrid();
    }
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        BindGrid();
    }
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        BindGrid();
    }

  可以看到,上面的代码和asp.net 1.1版本的其实原理是差不多的。最后,bindgrid()的过程很简单,为绑定咯
DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter("select * from employees", @"data source=localhost;initial catalog=northwind;user id=sa;password=123456");
        da.Fill(ds,"employees");
        DataView dv = ds.Tables[0].DefaultView;

        if (ViewState["sortexpression"] != null)
        {
            dv.Sort = ViewState["sortexpression"].ToString() + " " + ViewState["sortdirection"].ToString();
        }

        GridView1.DataSource=dv;
        GridView1.DataBind();

这里gridview绑定的是dataview,并且用dv.sort设定了每次排序的顺序,也就是说,每次排序后其顺序都是保持不变的。
当然最后是page_load事件咯
   protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            BindGrid();
        }
    }

分享到:
评论

相关推荐

    Programming Microsoft ASP.NET 2.0 Applications - Advanced Topics

    2. **控件与数据绑定**:书中会详细介绍ASP.NET 2.0的各种服务器控件,如GridView、DetailsView、FormView等,以及如何利用数据绑定机制(例如,DataSource控件)来连接数据库并展示数据。 3. **状态管理**:ASP...

    ASP.NET 2.0程序设计案例教程(课件)

    3. **数据绑定**:ASP.NET 2.0提供了强大的数据绑定机制,如DataSource控件和GridView控件,允许开发者轻松地从数据库或其他数据源检索和显示数据。课程可能包含如何使用这些控件进行数据操作的实例。 4. **状态...

    ASP.NET 2.0入门经典(第4版)源码

    3. **数据绑定**:ASP.NET 2.0提供了强大的数据绑定机制,如DataSource控件和Repeater、GridView、FormView等数据展示控件。这使得数据的检索、处理和显示变得更加简单,尤其适合构建数据驱动的Web应用。 4. **主题...

    ASP.NET2.0+sql server 网络应用开发详解

    5. **数据绑定**:介绍如何使用DataSource控件与SQL Server进行数据交互,实现GridView、DetailsView等控件的数据绑定。 6. **ASP.NET AJAX**:利用AJAX技术提高用户体验,创建异步更新的网页。 7. **安全性和身份...

    精通ASP.NET 2.0典型模块设计与实现源代码.rar

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework之上,为开发者提供了丰富的功能和工具来创建动态、交互式的Web应用。本资源"精通ASP.NET 2.0典型模块设计与实现源代码"提供了一整套...

    ASP.NET 2.0网站开发全程解析(C#)

    这个项目可能涵盖了数据库交互、用户登录、购物车、订单处理等功能,以及如何利用C#语言特性和ASP.NET 2.0的框架来实现这些功能。 通过这本书,读者可以学习到ASP.NET 2.0的核心概念、设计模式以及最佳实践,为开发...

    asp.net2.0技术内幕 源码

    3. **数据绑定和数据源控件**:ASP.NET 2.0提供了多种数据绑定方法,如`DataSource`控件和`GridView`,方便开发者与数据库交互。在`ch07code.zip`和`ch10code.zip`中,可以找到关于如何绑定数据并显示在网页上的示例...

    ASP.NET 2.0 完全自学手册

    3. **数据绑定**:ASP.NET 2.0引入了新的数据绑定模型,如DataSource控件和Linq-to-SQL,简化了与数据库交互的过程。学习如何使用GridView、Repeater等控件展示和操作数据是必备技能。 4. **状态管理**:ASP.NET...

    ASP.NET 2.0开发指南(随书源码)

    2. **控件和数据绑定**:ASP.NET 2.0引入了更强的数据绑定机制,如DataSource控件和Linq-to-SQL。Code 13-2.rar和Code 13-5.rar可能包含使用GridView、FormView或DetailsView控件与数据库交互的实例。 3. **母版页...

    《Asp.Net2.0 完全开发指南——基于VB》随书光盘

    《Asp.Net2.0 完全开发指南——基于VB》随书光盘是一个压缩文件,其中包含了关于Asp.Net2.0技术的详细学习资料,特别针对使用Visual Basic(VB)编程语言的开发者。Asp.Net是微软推出的一个强大的Web应用程序框架,...

    ASP.NET2.0数据库高级编程

    2. **DataSource控件**:ASP.NET 2.0引入了多种DataSource控件,如SqlDataSource、AccessDataSource、ObjectDataSource等,简化了与各种数据源的连接和查询。这些控件使得在页面上绑定数据变得更加直观,无需编写...

    Asp.Net2.0网站开发实战.iso

    《Asp.Net2.0网站开发实战》是一个深入学习Asp.Net 2.0技术的教程资源,以ISO格式提供,原始大小超过50MB,但压缩后仅3MB。这个教程涵盖了Asp.Net 2.0的核心概念、开发工具和实际应用,是初学者和进阶开发者的重要...

    精通ASP.NET2.0网络应用系统开发 随书光盘ch07

    ASP.NET 2.0是微软.NET Framework的一部分,它提供了一个强大的平台用于构建高效、可伸缩的、易于管理的Web应用程序。本章“精通ASP.NET 2.0网络应用系统开发”的内容,聚焦于深入理解和实践ASP.NET 2.0的关键技术和...

    ASP.net2.0的新特性

    GridView是ASP.NET 2.0中新增的一个数据控件,功能强大,可方便地显示和编辑表格数据。它提供了丰富的功能,如排序、分页、筛选和行操作,大大提高了开发者的生产力。 4. **页面导航控件(SiteMapDataSource)**:...

    ASP.NET 2.0入门经典(Word版)

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它是在.NET Framework 2.0版本上构建的。这个框架提供了丰富的功能和工具,让开发者能够更高效地创建动态、交互式的网页和Web应用。ASP.NET 2.0入门经典教程...

    ASP.NET 2.0+SQL Server网络应用系统开发案例精解

    ASP.NET 2.0是微软.NET Framework的一部分,旨在简化Web应用程序的开发过程,提供丰富的功能和强大的性能。SQL Server作为微软的旗舰级数据库管理系统,为数据存储和处理提供了可靠而高效的支持。 在ASP.NET 2.0中...

    完全手册:ASP.NET2.0网络开发详解教程光盘

    DataSource控件(如SqlDataSource、ObjectDataSource)可以方便地连接到数据源并执行查询,而控件(如GridView、FormView)可以直接绑定到DataSource,实现数据的自动填充和更新。 主题和皮肤机制让开发者能够轻松...

    零基础学ASP.net2.0

    3. **数据绑定**:ASP.NET 2.0中的数据绑定机制简化了数据展示和操作,如DataSource控件与GridView控件的结合,可以轻松实现数据的检索、展示和编辑。 4. **状态管理**:由于HTTP协议无状态,ASP.NET提供了多种状态...

    精通ASP.net 2.0 企业级项目开发源代码 光盘资料 客户关系管理系统

    ASP.NET 2.0 是微软开发的一个用于构建Web应用程序的框架,它基于.NET Framework,提供了丰富的功能和高效能,使得开发者能够快速构建出强大的企业级Web应用。在本主题中,我们将深入探讨ASP.NET 2.0的关键特性,...

    《精通ASP.Net 2.0网络应用系统开发》随书光盘ch06

    ASP.NET 2.0是微软.NET Framework的一部分,它提供了一个强大的平台用于构建高效、安全且易于维护的Web应用程序。在《精通ASP.NET 2.0网络应用系统开发》这本书中,作者马军深入探讨了ASP.NET 2.0的关键技术和实践...

Global site tag (gtag.js) - Google Analytics