`
fuhao9611
  • 浏览: 84598 次
  • 性别: 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("修改失败");
			}
		}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics