`
fuhao9611
  • 浏览: 85400 次
  • 性别: Icon_minigender_1
  • 来自: 陕西 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Asp.Net实现增删改以及分页例子二

阅读更多
接上篇,已经完成数据库的连接,以及增删改方法的编码,接下来就是如何在前台绑定数据了。
首先是如何将数据显示在列表上,这里微软做的很完美了,几乎不需要动手就可以实现数据的绑定:
JobsList.aspx:
如图:
将DataGrid控件拖到JobsList.aspx上,点右键,选择自动套用格式这样可以选择美化界面,然后点右键选择属性生成器,在这里做一些绑定数据的操作,如图所示:

接下来是分页,如图所示:

OK,至此完成页面处理,现在在JobsList.aspx.cs里面实现数据绑定。
JobsList.aspx.cs:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Zsgc.DataBaseManage;
using Zsgc.Op;
using Zsgc.Models;
//显示数据列表的页面
namespace Zsgc
{

	public class JobsList : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.DataGrid dg;
		private DataTable dt;
		private JobsOpt jobsopt;
		protected System.Web.UI.WebControls.LinkButton lbfirst;
		protected System.Web.UI.WebControls.LinkButton lbshang;
		protected System.Web.UI.WebControls.LinkButton lbnext;
		protected System.Web.UI.WebControls.LinkButton lbend;
		protected System.Web.UI.WebControls.Label lbl;
		private JobsModel jobsmodel;

		private void Page_Load(object sender, System.EventArgs e)
		{
			//全查数据
			jobsopt=new JobsOpt();
			dt=jobsopt.getList();
			if(!this.IsPostBack)
			{
				bd();
			}

		}

		//数据绑定
		public void bd()
		{
			dg.DataSource=dt;
			dg.DataBind();
			lbl.Text=string.Format("当前第{0}页,共{1}页",dg.CurrentPageIndex+1,dg.PageCount);
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.dg.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dg_PageIndexChanged);
			this.dg.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_CancelCommand);
			this.dg.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_EditCommand);
			this.dg.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_UpdateCommand);
			this.dg.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_DeleteCommand);
			this.lbshang.Click += new System.EventHandler(this.lbnext_Click);
			this.lbnext.Click += new System.EventHandler(this.lbnext_Click);
			this.lbend.Click += new System.EventHandler(this.lbnext_Click);
			this.lbfirst.Click += new System.EventHandler(this.lbnext_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
		//简单分页
		private void dg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
		{
			dg.CurrentPageIndex=e.NewPageIndex;
			bd();
		}
		//编辑一条数据 
		private void dg_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			dg.EditItemIndex=e.Item.ItemIndex;
			bd();
		}
		//取消编辑数据
		private void dg_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			dg.EditItemIndex=-1;
			bd();
		}
		//修改数据--不改变主键和描述的
		private void dg_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			//实例化jobsmodel
			jobsmodel=new JobsModel();
			//获取job_id,Cells[]表示行的单元格
			jobsmodel.Job_id=int.Parse(e.Item.Cells[0].Text);
			//Controls表示单元格cell的子控件
			TextBox tb=(TextBox)e.Item.Cells[2].Controls[0];
			//获取到min_lvl的值
			jobsmodel.Min_lvl=byte.Parse(tb.Text);
			tb=(TextBox)e.Item.Cells[3].Controls[0];
			//获取到max_lvl的值
			jobsmodel.Max_lvl=byte.Parse(tb.Text);
			//实例化操纵类jobsopt
			jobsopt=new JobsOpt();
			//调用修改方法
			Exception ex=jobsopt.Modify(jobsmodel);
			if(ex==null)
			{
				DBM.message("修改成功");
			}
			else
			{
				DBM.message("修改失败");
			}
			//表示修改成功后,停留在当前页面
			dg.EditItemIndex=-1;
			//重新绑定数据
			dt=jobsopt.getList();
			bd();
		}
		//根据主键删除一条记录
		private void dg_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			//实例化jobsmodel
			jobsmodel=new JobsModel();
			//取得该条数据的的编号
			string id=e.Item.Cells[0].Text;
			//实例化jobsopt
			jobsopt=new JobsOpt();
			//执行删除方法
			Exception ex=jobsopt.Delete(id);
			if(ex==null)
			{
				DBM.message("删除成功");
			}
			else
			{
				DBM.message("删除失败");
			}
			//重新绑定数据
			dt=jobsopt.getList();
			bd();
		}
		
		//自定义分页
		private void lbnext_Click(object sender, System.EventArgs e)
		{
			LinkButton lb=(LinkButton)sender;
			//获得当前页的索引
			int cp=dg.CurrentPageIndex;
			//获得DataGrid控件所需要的总页数
			int pcount=dg.PageCount;
		
			switch(lb.Text)
			{
				case "首页":
				//DBM.message("--:"+cp);
					cp=0;
					break;
				case "上一页":
					cp--;
					break;
				case "下一页":
					cp++;
					break;
				default:
					cp=pcount-1;
					break;
			}
			//如果索引大于总页数,那么索引就等于总页数减一
			if(cp>pcount-1) cp=pcount-1;
			//如果索引小于0,那么索引就等于0
			if(cp<0) cp=0;
			//重新绑定数据
			dg.CurrentPageIndex=cp;
			bd();
			//根据情况确定按纽是否可用
			lbfirst.Enabled=true;
			lbshang.Enabled=true;
			lbnext.Enabled=true;
			lbend.Enabled=true;
			//说明是在在第一页上,那么首页和上一页两个按钮不能使用
			if(cp==0)
			{
				lbfirst.Enabled=false;
				lbshang.Enabled=false;
			}
			//说明当前页是在最后一页上,那么下一页和尾页按钮将不能使用
			if(cp==pcount-1)
			{
				lbnext.Enabled=false;
				lbend.Enabled=false;
			}

		}
	}
}

增加功能代码:
add.aspx.cs:
private void Button1_Click(object sender, System.EventArgs e)
		{
			//实例化jobsopt
			JobsOpt jobsopt=new JobsOpt();
			//实例化jobsmodel
			JobsModel jobsmodel=new JobsModel();
			//获得jobs_desc的值
			jobsmodel.Job_desc=txtDesc.Text;
			//获得min_lvl的值
			jobsmodel.Min_lvl=byte.Parse(txtMin.Text);
			//获得max_lvl的值
			jobsmodel.Max_lvl=byte.Parse(txtMax.Text);
			//执行添加方法
			Exception ex=jobsopt.Add(jobsmodel);
			if(ex==null)
			{
				DBM.message("添加数据成功");
				//添加成功后跳转到列表页面
				Response.Redirect("JobsList.aspx");
			}
			else
			{
				DBM.message("添加数据失败");
			}
		}

修改功能代码如下:
update.aspx.cs:
private void Page_Load(object sender, System.EventArgs e)
		{
			//实例化jobsmodel
			jobsmodel=new JobsModel();
			//实例化jobsopt
			jobsopt=new JobsOpt();
			//获取页面传来的id
			int id=int.Parse(System.Web.HttpContext.Current.Request["id"]);
			//获得一条数据的sql
			string sql="select * from jobs where job_id="+id;
			//执行查询数据
			dt=DBM.getList(sql);
			//绑定数据
			txtDesc.Text=dt.Rows[0][1].ToString();
			txtMin.Text=dt.Rows[0][2].ToString();
			txtMax.Text=dt.Rows[0][3].ToString();
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void Button1_Click(object sender, System.EventArgs e)
		{
			
			//实例化jobsmodel
			jobsmodel=new JobsModel();
			//实例化jobsopt
			jobsopt=new JobsOpt();
			jobsmodel.Job_desc=txtDesc.Text;
			jobsmodel.Min_lvl=byte.Parse(txtMin.Text);
			jobsmodel.Max_lvl=byte.Parse(txtMax.Text);
			//执行修改操作
			Exception ex=jobsopt.Update(jobsmodel);
			if(ex==null)
			{
				DBM.message("修改成功");
				Response.Redirect("JobsList.aspx");
			}
			else
			{
				DBM.message("修改失败");
			}
		}
分享到:
评论

相关推荐

    Asp.Net实现增删改以及分页例子一

    开发环境:Microsoft Visual Studio .NET 2003 数据库:SQL Server 2000 博文链接:https://fuhao9611.iteye.com/blog/74998

    ASP.NET MVC3 简单增删改查分页例子

    ASP.NET MVC3 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,实现增删该查以及分页功能(使用老外写的一个jquery插件完成超炫的分页效果),代码简洁,注释详细,欢迎大家下载使用。

    ASP.NET增删改查例子(作业)

    这个"ASP.NET增删改查例子(作业)"是一个针对初学者的教程,旨在教授如何在ASP.NET环境中实现基本的数据操作功能,即添加(Add)、删除(Delete)、修改(Update)和查询(Query)。这些是任何数据库驱动的Web应用中...

    Ext.net后台分页增删改

    在"Ext.NET后台分页增删改"这个主题中,我们将探讨如何利用Ext.NET实现数据库后台分页、树形视图操作以及Grid面板的CRUD(创建、读取、更新和删除)功能。 首先,让我们深入了解一下后台分页。在Ext.NET中,为了...

    easyui增删改很好的例子

    在这个例子中,`产品列表`可能使用了`datagrid`组件来展示产品信息,它支持分页、排序和过滤功能,并可以通过内置的编辑功能进行增删改操作。 `产品分类管理`可能采用了类似的表格展示,但重点在于对分类的管理,这...

    asp.NET Gridview实现数据库增删改查,12年的旧代码,供参考

    首先, GridView控件是ASP.NET中的一个服务器控件,它可以直接绑定到数据源,如SQL Server、Oracle,或者像在这个例子中使用的Access数据库。在页面加载时,GridView会自动根据数据源填充表格,并提供多种内置的功能...

    Angularjs(增删改+分页+弹框+Sql数据库)

    AngularJS 是一个强大的...这个AngularJS Demo是初学者学习基础功能的好例子,通过逐步实现增删改查和分页,可以帮助理解AngularJS的核心概念和实际应用。在实践中不断探索和优化,将有助于提升对AngularJS的掌握程度。

    mvc5.2+EF6.0+mysql使用CodeFirst模式编写的一个增删改小例子

    在本文中,我们将深入探讨如何使用ASP.NET MVC 5.2、Entity Framework 6.0 (EF6) 和 MySQL 数据库通过CodeFirst模式构建一个基本的增删改查(CRUD)应用程序。这个例子展示了如何将这三个技术有效地结合起来,以实现...

    C#纯代码实现GridView绑定增删改.pdf

    总的来说,这个示例展示了ASP.NET开发中使用C#代码动态构建和操作GridView的基本流程,包括数据绑定、样式设置以及事件处理。对于初学者来说,这是一个很好的起点,可以帮助理解如何在没有使用ASP.NET设计视图的情况...

    EasyUI增查改删操作示例

    综上,"EasyUI增查改删操作示例"压缩包提供的 Demo 应包含前端的 HTML 文件、CSS 样式和 JavaScript 代码,以及后端的 ASP.NET 或 Web API 控制器,演示了如何结合 EasyUI 和 C# 实现数据管理的基本功能。...

    GridViewExamples

    5. **增除删改**:这部分可能包含了一些演示如何在GridView中实现添加、删除和修改记录的示例代码或文件夹。 6. **App_Code**:在ASP.NET中,这是一个特殊目录,用于存放共享的类文件和其他后台代码。在这个项目中...

    GridView例子

    GridView增删改 GridView隐藏列 GridView行背景颜色 GridView突显单元格 GridView省略字符 GridView求和平均值 GridView排序 GridView结合控件 GridView合并表头 GridView固定表头 GridView分页 GridView导入导出 ...

Global site tag (gtag.js) - Google Analytics