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

接上篇,已经完成数据库的连接,以及增删改方法的编码,接下来就是如何在前台绑定数据了。
首先是如何将数据显示在列表上,这里微软做的很完美了,几乎不需要动手就可以实现数据的绑定:
[b]JobsList.aspx:[/b]
如图:[img]http://fuhao9611.iteye.com/upload/picture/pic/3102/454d130c-f8e3-4659-82c8-39239bdb4ff9.jpg[/img]
将DataGrid控件拖到JobsList.aspx上,点右键,选择[b]自动套用格式[/b]这样可以选择美化界面,然后点右键选择[b]属性生成器[/b],在这里做一些绑定数据的操作,如图所示:
[img]http://fuhao9611.iteye.com/upload/picture/pic/3103/311aa1b7-d3bf-45a0-918c-754a110f546d.jpg[/img]
接下来是分页,如图所示:
[img]http://fuhao9611.iteye.com/upload/picture/pic/3104/39b04da0-a2bc-484a-9245-35234cdf5459.jpg[/img]
OK,至此完成页面处理,现在在JobsList.aspx.cs里面实现数据绑定。
[b]JobsList.aspx.cs:[/b]
[code]
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;
}

}
}
}
[/code]
增加功能代码:
[b]add.aspx.cs:[/b]
[code]
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("添加数据失败");
}
}
[/code]
修改功能代码如下:
[b]update.aspx.cs:[/b]
[code]
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("修改失败");
}
}
[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值