接上篇,已经完成数据库的连接,以及增删改方法的编码,接下来就是如何在前台绑定数据了。
首先是如何将数据显示在列表上,这里微软做的很完美了,几乎不需要动手就可以实现数据的绑定:
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 MVC3 简单的增删改查分页例子(附数据库,下载即可运行),适合新手使用,实现增删该查以及分页功能(使用老外写的一个jquery插件完成超炫的分页效果),代码简洁,注释详细,欢迎大家下载使用。
这个"ASP.NET增删改查例子(作业)"是一个针对初学者的教程,旨在教授如何在ASP.NET环境中实现基本的数据操作功能,即添加(Add)、删除(Delete)、修改(Update)和查询(Query)。这些是任何数据库驱动的Web应用中...
在"Ext.NET后台分页增删改"这个主题中,我们将探讨如何利用Ext.NET实现数据库后台分页、树形视图操作以及Grid面板的CRUD(创建、读取、更新和删除)功能。 首先,让我们深入了解一下后台分页。在Ext.NET中,为了...
在这个例子中,`产品列表`可能使用了`datagrid`组件来展示产品信息,它支持分页、排序和过滤功能,并可以通过内置的编辑功能进行增删改操作。 `产品分类管理`可能采用了类似的表格展示,但重点在于对分类的管理,这...
首先, GridView控件是ASP.NET中的一个服务器控件,它可以直接绑定到数据源,如SQL Server、Oracle,或者像在这个例子中使用的Access数据库。在页面加载时,GridView会自动根据数据源填充表格,并提供多种内置的功能...
AngularJS 是一个强大的...这个AngularJS Demo是初学者学习基础功能的好例子,通过逐步实现增删改查和分页,可以帮助理解AngularJS的核心概念和实际应用。在实践中不断探索和优化,将有助于提升对AngularJS的掌握程度。
在本文中,我们将深入探讨如何使用ASP.NET MVC 5.2、Entity Framework 6.0 (EF6) 和 MySQL 数据库通过CodeFirst模式构建一个基本的增删改查(CRUD)应用程序。这个例子展示了如何将这三个技术有效地结合起来,以实现...
总的来说,这个示例展示了ASP.NET开发中使用C#代码动态构建和操作GridView的基本流程,包括数据绑定、样式设置以及事件处理。对于初学者来说,这是一个很好的起点,可以帮助理解如何在没有使用ASP.NET设计视图的情况...
综上,"EasyUI增查改删操作示例"压缩包提供的 Demo 应包含前端的 HTML 文件、CSS 样式和 JavaScript 代码,以及后端的 ASP.NET 或 Web API 控制器,演示了如何结合 EasyUI 和 C# 实现数据管理的基本功能。...
5. **增除删改**:这部分可能包含了一些演示如何在GridView中实现添加、删除和修改记录的示例代码或文件夹。 6. **App_Code**:在ASP.NET中,这是一个特殊目录,用于存放共享的类文件和其他后台代码。在这个项目中...
GridView增删改 GridView隐藏列 GridView行背景颜色 GridView突显单元格 GridView省略字符 GridView求和平均值 GridView排序 GridView结合控件 GridView合并表头 GridView固定表头 GridView分页 GridView导入导出 ...