ASP.NET GridView详解(简单易懂)

@个人原创,仅供参考。有问题可留言。

  @全体成员:提供据体图布局和源代码供大家参考,如有不理解的地方可以下载压缩包体验。
  个人原创,仅供参考。
  压缩包地址:https://download.csdn.net/download/ganyonjie/13697083 欢迎下载

最后实现后的界面如下:

在这里插入图片描述

  1. 数据列的新增,左上栏表示控件的类型,左下为新增的列,右边为属性。
    在这里插入图片描述
  2. 连接sql数据库:
    实现执行sql 命令的语句,如插入删除:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
public int cmd(string sql) {
			# 声明
            SqlConnection con = new SqlConnection();
            con.ConnectionString = "server =.; database = System; integrated security = SSPI; uid = sa; pwd = sa";
            con.Open();
            # 执行sql
            SqlCommand sqlcmd = new SqlCommand(sql, con);
            int count = 0;
            try{
            	count = sqlcmd.ExecuteNonQuery();
            }
			# 关闭连接
            con.Close();
			# 返回执行成功的条数
            return count;
        }

实现查询等需要返回数据的操作:

/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
public DataTable searchtable(string sql) {
			# 变量声明
            SqlConnection con = new SqlConnection();
            con.ConnectionString = "server =.; database = System; integrated security = SSPI; uid = sa; pwd = gt";
            con.Open();
			# 获取数据
            SqlCommand sqlcmd = new SqlCommand(sql, con);
            SqlDataReader read = sqlcmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(read);
			# 关闭连接资源
            read.Close();
            con.Close();

            return dt;
        }

实现界面数据刷新操作:

/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void Refresh(string sql = null,string sort = null)
        {
        	# 初始化变量
            sql = sql ?? "select * from Patient";
            sort = sort ?? "id_card ASC";
            this.GridView1.DataSourceID = null;
            # 将取到的数据进行排序
            DataView view = searchtable(sql).DefaultView;
            view.Sort = sort;
            # 数据绑定
            GridView1.DataSource = view;
            GridView1.DataBind();
        }
  1. 实现点击对应的表头产生排序的方法:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void Page_Load(object sender, EventArgs e)
        {
        	# 程序加载时默认升序排序
            if (!IsPostBack)
            {
                ViewState["OrderDire"] = "ASC";
                this.Refresh();
            }
        }
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {      
        	# 实现前后两次排序相反   
            if (ViewState["OrderDire"].ToString() == "ASC")
                ViewState["OrderDire"] = "DESC";
            else
                ViewState["OrderDire"] = "ASC";
			# 舒适化排序方法
            string s = e.SortExpression + " " + (string)ViewState["OrderDire"];
            # 刷新数据
            this.Refresh(null,s);
        }
  1. 实现按下查询按钮筛选结果操作:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void Button1_Click(object sender, EventArgs e)
        {
            string sql = null;
            # 获取主键
            string name = GridView1.Columns[0].SortExpression;
            if (TextBox1.Text.Trim()!="")
                sql = "select * from Patient where "+name+"='"+TextBox1.Text.Trim()+"'";
            # 数据刷新
            this.Refresh(sql);
        }
  1. 实现页面跳转功能:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
 protected void Button2_Click(object sender, EventArgs e)
        {
        	# 通过server跳转页面
            Server.Transfer("./PatientInformation.aspx", true);
        }
  1. 实现点击对应行的删除按钮执行删除功能:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
        	# 获取主键信息
            string id = GridView1.Rows[e.RowIndex].Cells[0].Text.ToString().Trim();
            string name = GridView1.Columns[0].SortExpression;
            string sql = "delete from Patient where "+name+" = '"+id+"'";
            # 执行sql语句
            cmd(sql);
			# 数据刷新
            this.Refresh();
        }
  1. 实现点击对应行的编辑按钮启用编辑功能:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
        	# 将选中列更改为输入框
            GridView1.EditIndex = e.NewEditIndex;
			# 数据刷新
            this.Refresh();
        }
  1. 实现点击对应行的更新按钮更新数据:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
        	# 获取主键的name和值 表格中存在的最大列数
            string id = GridView1.Rows[e.RowIndex].Cells[0].Text.ToString().Trim();
            string name = GridView1.Columns[0].SortExpression;
            int max = GridView1.Rows[e.RowIndex].Cells.Count - max_buttonLine;
            # 对sql语句进行拼接
            string sql = "update Patient set ";
            for (int i = 1; i < max; i++)
            {
           		# 排除单元格为空的情况
           		# Server.HtmlDecode增加安全性
                if (GridView1.Rows[e.RowIndex].Cells[i].Text.Trim() != "&nbsp;")
                    sql += GridView1.Columns[i].SortExpression + " = '" + Server.HtmlDecode(((TextBox)GridView1.Rows[e.RowIndex].Cells[i].Controls[0]).Text.ToString().Trim()) + "',";
            }
			# 去掉最后的,
            sql = sql.Substring(0, sql.Length - 1);
            sql += " where " + name + " = '" + id + "'";

            try
            {
            	# 执行sql语句
                cmd(sql);
            }
            catch (Exception ex)
            {
            	# 弹出错误提示框
                Response.Write("<script>alert('编辑出错,请重新填写');</script>");
            }
            # 退出编辑模式
            GridView1.EditIndex = -1;
            # 刷新数据
            this.Refresh();
        }
  1. 实现点击对应行取消按钮退出编辑状态:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
        	# 退出编辑模式
            GridView1.EditIndex = -1;
            # 刷新数据
            this.Refresh();
        }
  1. 实现加载时刷新表格样式:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
        	# 获取当前表格中的最大列数
            int max = e.Row.Cells.Count;
            # 按列对表格设置样式
            for(int i=0;i< max; i++)
            {

                    if (e.Row.RowType == DataControlRowType.DataRow)
                    {
                        e.Row.Cells[i].Attributes.Add("style", "border:1px dotted red");
                    }
            }
            //首先判断是否是数据行
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //当鼠标停留时更改背景色
                e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A966'");
                //当鼠标移开时还原背景色
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
            }

        }
  1. 实现数据多情况下的分页功能:
/* author:win杰
*  time:2020/12/12
*  @版权所有,仅供参考
*/
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
        	# 开启简单排序功能
            GridView1.AllowSorting = true;
            # 获取新的index值
            GridView1.PageIndex = e.NewPageIndex;
            # 数据绑定
            GridView1.DataBind();
        }

至此,完。谢谢观看。

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: ASP.NET GridView控件可以通过数据绑定的方式来显示数据。数据绑定可以使用多种方式,如绑定数据源、绑定数据表、绑定数据集等。以下是一个简单ASP.NET GridView绑定数据的示例: 1. 在ASP.NET页面中添加GridView控件,并设置其属性AutoGenerateColumns为True。 2. 在代码中获取数据源,可以使用ADO.NET、LINQ、Entity Framework等方式获取数据。 3. 将数据源绑定到GridView控件,可以使用以下代码: GridView1.DataSource = 数据源; GridView1.DataBind(); 4. 如果需要自定义GridView的列,可以在GridView的TemplateField中添加控件,如Label、TextBox等。 5. 最后,在页面中运行代码,即可看到GridView控件显示绑定的数据。 以上是ASP.NET GridView绑定数据的基本步骤,具体实现方式可以根据实际需求进行调整。 ### 回答2: ASP.NET GridView是一个重要的Web控件,它提供了一种灵活易用的方式来显示数据。网格视图可以用于在Web页面上显示有序数据列表,类似于表格。GridView使得在Web上交互数据变得简单。在asp.net网页中,在GridView中展示数据库信息是一项非常有用的技能。 网格视图是可以通过自增字段或外部数据源绑定进行填充的。其中,通过外部数据源绑定是一个更为常见和实际中更为有用的方法。通过外部数据源绑定,可以使GridView获取并显示其他数据源中的数据(如文件、数据库、Web服务等等)。 在ASP.NET中绑定数据到GridView控件的过程主要分为以下几步: 1. 配置数据源:打开Visual Studio,从“工具箱”中拖出一个GridView控件,然后在“Data”标签页中选择“Configure Data Source”以配置数据源。在其中选择采用的数据源类型,然后配置连接细节,以便GridView能够连接到需要显示的数据集或数据库。 2. 定义列:回到GridView控件设计器,定义需要在GridView中显示的列。可以使用自动化分析来填写在GridView组件表格中应该显示的列。 3. 绑定数据:将6处列与外部数据源关联就可以为GridView组件填充数据。在此过程中,需要指定数据绑定策略以及如何提取数据。 4. 实施密钥排序:通过单击Header处的特定列或者在“Data”标签中单击GridView控件的列名称进行排序。 GridViewASP.NET网站上提供了强大的数据列表功能。所以掌握如何使用数据绑定技术来展示数据库信息也是十分重要的。同时也需要了解GridView控件的许多属性,以便为应用程序添加适当的插入、删除和更新功能。 ### 回答3: ASP.NET GridView是一个常用的数据控件,它可以非常便捷地将数据绑定到网页上。在使用GridView控件绑定数据时,通常会有以下几个步骤: 1. 准备数据源:GridView所绑定的数据源可以是任意数据类型,包括数据表、数据集、数组、列表等。数据源需要提前准备好,并赋值给GridView控件的DataSource属性。 2. 定义列:GridView控件需要知道如何将数据显示在网页上,因此需要定义每列的显示方式和数据类型。可以通过GridView控件的Columns属性添加列,在列中指定字段名称、数据类型、显示格式等。 3. 绑定数据:当GridView控件的DataSource和Columns属性都准备好后,可以通过GridView控件的DataBind方法来绑定数据。在数据绑定的过程中,GridView控件会根据每列的定义自动将数据显示在网页上。 除了以上三个基本步骤,GridView控件还提供了一些高级功能,如分页、排序、编辑、删除等,可以通过相应的属性和方法来使用。 需要注意的是,在网页开发中,数据绑定是一个非常常见的操作,因此要充分了解各种数据绑定的方式和技巧,能够高效地完成网页的开发工作。同时,为了提高用户体验和性能,还需要注意缓存、分页和异步刷新等相关技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ganyonjie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值