学习如何使用ASP.NET进行GridView绑定操作

作者:本溪淘贝游戏开发公司 阅读:61 次 发布时间:2023-05-15 17:39:16

摘要:  随着互联网技术的不断发展,Web应用越来越普及,因此,Web开发的需求也随之增加。而在开发Web应用时,数据绑定是必不可少的一步,GridView绑定则是Web应用中常用的一种数据绑定方式。GridView是ASP.NET中一个非常强大且灵活的控件,它能够将数据直接绑定到表格中,以方便...

  随着互联网技术的不断发展,Web应用越来越普及,因此,Web开发的需求也随之增加。而在开发Web应用时,数据绑定是必不可少的一步,GridView绑定则是Web应用中常用的一种数据绑定方式。GridView是ASP.NET中一个非常强大且灵活的控件,它能够将数据直接绑定到表格中,以方便用户操作和浏览数据。在这篇文章中,我们将介绍如何使用ASP.NET进行GridView绑定操作。

学习如何使用ASP.NET进行GridView绑定操作

  一、GridView控件概述

  GridView是一种非常强大的控件,可以直接将数据绑定到表格中。GridView控件适用于以表格形式显示大量数据的业务场景。GridView控件具有灵活性,可以根据需要自定义显示格式,并且可以实现排序、分页、编辑、删除等操作。GridView控件还可以方便地批量处理数据,大大提高了开发效率。

  二、GridView控件的主要属性

  GridView控件具有以下重要属性:

  1. DataSource:指定数据源;

  2. DataMember:指定绑定的数据表;

  3. AutoGenerateColumns:指定是否自动生成列;

  4. Columns:指定自定义的列;

  5. AllowSorting:指定是否允许排序;

  6. AllowPaging:指定是否允许分页;

  7. PageSize:指定每页显示的行数;

  8. RowStyle、AlternatingRowStyle:指定行样式和交替行样式;

  9. HeaderStyle、FooterStyle 、PagerStyle :指定表头、页脚、分页样式;

  10. EmptyDataText:指定没有数据时的提示信息。

  三、GridView绑定数据源

  GridView控件支持多种数据源类型,包括DataTable、DataSet、Array、ArrayList等。这里我们以DataTable作为数据源进行GridView绑定示例。

  1. 在页面上添加GridView控件。

  ```

  

  ```

  2. 在代码中添加数据源。

  ```csharp

  private DataTable BindData()

  {

   DataTable dt = new DataTable();

   dt.Columns.Add(new DataColumn("ID", typeof(int)));

   dt.Columns.Add(new DataColumn("Name", typeof(string)));

   dt.Columns.Add(new DataColumn("Gender", typeof(string)));

   dt.Columns.Add(new DataColumn("Age", typeof(int)));

   DataRow dr1 = dt.NewRow();

   dr1["ID"] = 1;

   dr1["Name"] = "张三";

   dr1["Gender"] = "男";

   dr1["Age"] = 20;

   DataRow dr2 = dt.NewRow();

   dr2["ID"] = 2;

   dr2["Name"] = "李四";

   dr2["Gender"] = "女";

   dr2["Age"] = 25;

   DataRow dr3 = dt.NewRow();

   dr3["ID"] = 3;

   dr3["Name"] = "王五";

   dr3["Gender"] = "男";

   dr3["Age"] = 30;

   dt.Rows.Add(dr1);

   dt.Rows.Add(dr2);

   dt.Rows.Add(dr3);

   return dt;

  }

  ```

  3. 在Page_Load事件中绑定数据源。

  ```csharp

  protected void Page_Load(object sender, EventArgs e)

  {

   if (!Page.IsPostBack)

   {

   GridView1.DataSource = BindData();

   GridView1.DataBind();

   }

  }

  ```

  四、自定义GridView列

  虽然AutoGenerateColumns属性可以自动生成列,但是其存在一些问题,比如列名不容易自定义,控制显示效果比较麻烦等。因此,我们可以在代码中手动定义列。

  1. 在GridView控件中添加Columns节点,这个节点中包含了所有要显示的列。

  ```csharp

  

  

  

  

  

  

  ```

  2. 修改BindData()方法,返回的是一个List。

  ```csharp

  private List BindData()

  {

   List persons = new List();

   persons.Add(new Person() { ID = 1, Name = "张三", Gender = "男", Age = 20 });

   persons.Add(new Person() { ID = 2, Name = "李四", Gender = "女", Age = 25 });

   persons.Add(new Person() { ID = 3, Name = "王五", Gender = "男", Age = 30 });

   return persons;

  }

  ```

  3. 利用ObjectDataSource绑定数据源。

  ```

  

   SelectMethod="BindData">

  

  

  

  

  

  

  

  

  

  

  ```

  五、GridView控件的常见操作

  1. 数据编辑操作

  对于需要进行编辑的行,我们可以使用CommandField来实现编辑和删除操作。CommandField提供了多种命令,如Edit、Cancel、Update、Delete等。

  ```csharp

  

  

  ```

  还需要在GridView控件中添加OnRowEditing、OnRowCancelingEdit、OnRowUpdating、OnRowDeleting事件。

  ```csharp

  

   OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting">

  ```

  事件的具体实现如下:

  ```csharp

  protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

  {

   GridView1.EditIndex = e.NewEditIndex;

  }

  protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

  {

   GridView1.EditIndex = -1;

  }

  protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

  {

   int ID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);

   TextBox tbName = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtName");

   TextBox tbGender = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtGender");

   TextBox tbAge = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtAge");

   string Name = tbName.Text.Trim();

   string Gender = tbGender.Text.Trim();

   int Age = Convert.ToInt32(tbAge.Text.Trim());

   //执行更新操作

   GridView1.EditIndex = -1;

  }

  protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

  {

   int ID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);

   //执行删除操作

  }

  ```

  2. GridView控件的分页

  GridView控件自带分页功能,只需要设置AllowPaging为true即可。

  ```csharp

  

   AutoGenerateColumns="false" AllowPaging="true" PageSize="5">

  ```

  复杂的分页操作可以使用PagedDataSource来实现。

  ```csharp

  PagedDataSource pds = new PagedDataSource();

  pds.DataSource = persons;

  pds.AllowPaging = true;

  pds.PageSize = 5;

  pds.CurrentPageIndex = GridView1.PageIndex;

  GridView1.DataSource = pds;

  ```

  3. GridView控件的排序

  GridView控件的排序功能可以通过AllowSorting属性来开启,还可以通过以下代码实现排序。

  ```csharp

  protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)

  {

   List persons = (List)BindData();

   switch (e.SortExpression)

   {

   case "Name":

   if (ViewState["Name"] == null || (string)ViewState["Name"] == "desc")

   {

   persons = persons.OrderBy(p => p.Name).ToList();

   ViewState["Name"] = "asc";

   }

   else

   {

   persons = persons.OrderByDescending(p => p.Name).ToList();

   ViewState["Name"] = "desc";

   }

   break;

   case "Gender":

   if (ViewState["Gender"] == null || (string)ViewState["Gender"] == "desc")

   {

   persons = persons.OrderBy(p => p.Gender).ToList();

   ViewState["Gender"] = "asc";

   }

   else

   {

   persons = persons.OrderByDescending(p => p.Gender).ToList();

   ViewState["Gender"] = "desc";

   }

   break;

   }

   GridView1.DataSource = persons;

   GridView1.DataBind();

  }

  ```

  六、总结

  GridView控件作为ASP.NET中一个非常实用的数据绑定控件,在Web应用中扮演着非常重要的角色。在这篇文章中,我们介绍了GridView控件的概述、重要属性、数据绑定、自定义列、常见操作等内容。希望本文可以对大家在使用ASP.NET进行GridView数据绑定有所帮助。

  • 原标题:学习如何使用ASP.NET进行GridView绑定操作

  • 本文链接:https://qipaikaifa1.com/tb/5513.html

  • 本文由本溪淘贝游戏开发公司小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与淘贝科技联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:189-2934-0276


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部