接上篇,已经完成数据库的连接,以及增删改方法的编码,接下来就是如何在前台绑定数据了。
首先是如何将数据显示在列表上,这里微软做的很完美了,几乎不需要动手就可以实现数据的绑定:
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("修改失败");
}
}
分享到:
相关推荐
开发环境:Microsoft Visual Studio .NET 2003 数据库:SQL Server 2000 博文链接:https://fuhao9611.iteye.com/blog/74998
ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件
asp.net页面增删改数据easyui,就摘取了主要的两个cshtml,2个c#
ASP.NET MVC3 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,实现增删该查以及分页功能(使用老外写的一个jquery插件完成超炫的分页效果),代码简洁,注释详细,欢迎大家下载使用。
asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net...
ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页
简单的ASP.NET MVC增删改项目,SQL数据库
asp.net利用存储过程分页代码,代码很详细,有建库脚本和页面的调用。
asp.net 用存储过程实现分页(附代码)
ASP.NET增删改查例子(作业) 初学者必备.... ASP.NET增删改查例子(作业) 初学者必备....
ASP.NET Repeater 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,本例使用三层架构搭建,实现增删该查以及分页功能,代码简洁,注释详细,欢迎大家下载使用。
VS 2012,MSSQL 2012 ASP.NET DataList 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,本例使用三层架构搭建,实现增删该查以及分页功能,代码简洁,注释详细,欢迎大家下载使用。
ASP.NET MVC 增册改查 分页,采用三层架构,分页用存储过程分页,学了 好些时间 了,做了这一个小东西 和大家来分享下.希望能对大家有用!
ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页
asp.net实现添加文章时分页,每页内容自己控制
快速入门ASP.NET,并实现一个简单的CRUD,环境基于VS 2017。
asp.net 在access下实现分页