频道栏目
读书频道 > web开发 > .NET > 深入体验ASP.NET项目开发
2.6.3 相片类别管理
2013-03-27 10:10:58     我来说两句
收藏   我要投稿

本文所属图书 > 深入体验ASP.NET项目开发

ASP.NET是当今使用最为频繁的Web开发技术之一,一直在开发领域占据重要的地位。本书通过10个综合实例(在线留言簿系统、在线相册系统、在线RSS订阅系统、在线聊天系统、在线商城系统、企业内部交互系统、图文处理...  立即去当当网订购

相片类别管理模块的功能是:对系统内各相片的分类进行管理维护。上述功能的实现文件如下。

文件AddFenlei.aspx。

文件AddFenlei.aspx.cs。

文件FenleiGuan.aspx。

文件FenleiGuan.aspx.cs。

文件UpdateFenlei.aspx。

文件UpdateFenlei.aspx.cs。

1. 添加分类

分类添加模块的功能是:向系统库内添加新的相片分类信息。上述功能的实现文件如下。

文件AddFenlei.aspx:类别添加表单页面。

文件AddFenlei.aspx.cs:类别添加处理页面。

1) 文件AddFenlei.aspx

类别添加表单页面文件AddFenlei.aspx的功能是;提供类别添加表单,供用户向系统内添加新的相片分类。其具体实现流程如下所示。

(1) 插入1个TextBox控件,用于输入新分类的名称。

(2) 插入1个DropDownList控件,用于设置分类的状态。

(3) 插入2个RequiredFieldValidator控件,用于验证输入名称。

(4) 分别插入1个RequiredFieldValidator控件和1个RegularExpressionValidator控件,用于验证输入名称是否合法。

(5) 调用Ajax程序集内的TextBoxWatermark控件和ValidatorCallout控件,用于验证输入名称并输出Ajax提示。

为节省本书篇幅,不再将文件AddFenlei.aspx的实现代码一一列出。

2) 文件AddFenlei.aspx.cs

类别添加处理页面文件AddFenlei.aspx.cs的功能是:将获取添加表单内的数据添加到系统库中。其具体实现代码如下所示。

using System.Web.UI.HtmlControls;
using ASPNETAJAXWeb.AjaxAlbum;
public partial class AddFenlei : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
 protected void btnCommit_Click(object sender,EventArgs e)
 {
  Album album = new Album();
  //创建新的相册分类
  if(album.AddFenlei(tbName.Text,byte.Parse(ddlStatus.
  SelectedValue))>0)
  { ///重定向到管理页面  
   Response.Redirect("~/FenleiGuan.aspx");
  }
 }
 protected void btnClear_Click(object sender,EventArgs e)
 {
  tbName.Text = string.Empty;
 }
}

2. 类别管理模块

类别管理模块的功能是:对系统库内存在的相片分类信息进行管理维护。对应实现文件如下。

文件FenleiGuan.aspx:类别管理列表页面。

文件FenleiGuan.aspx.cs:类别管理处理页面。

文件UpdateFenlei.aspx:类别修改表单页面。

文件UpdateFenlei.aspx.cs:类别修改处理页面。

1) 文件FenleiGuan.aspx

类别管理列表页面文件FenleiGuan.aspx的功能是:将系统内的相片类别数据以列表的样式显示出来。其具体实现流程如下所示。

(1) 插入1个GridView控件,用于以列表样式显示相片类别的信息,包括类别的名称和状态。

(2) 通过“<%# Eval("ID") %>”参数代表对应要操作信息编号。

(3) 插入2个ImageButton控件,分别用于激活类别修改和类别删除事件。

为节省本书篇幅,不再将文件FenleiGuan.aspx的实现代码列出。

2) 文件FenleiGuan.aspx.cs

类别管理处理页面文件FenleiGuan.aspx.cs的功能是:将系统内的相片类别数据以列表的样式显示出来。其具体实现流程如图2-20所示。


 

(1) 初始化处理。本模块的页面初始化处理功能是由事件Page_Load实现的,其对应的实现代码如下所示。

using System.Web.UI.HtmlControls;
using ASPNETAJAXWeb.AjaxAlbum;
public partial class CategoryManage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
  if(!Page.IsPostBack)
  {
   BindPageData();
  }
    }

(2) 数据处理。数据处理的功能是通过数据库访问层的方法GetFenleiAndPhoto()获取系统分类的信息,然后将数据读取出来。其对应的实现代码如下所示。

private void BindPageData()
{    ///获取数据
  Album album = new Album();
  DataSet ds = album.GetFenleiAndPhoto();
  ///显示数据
  gvCategory.DataSource = ds;
  gvCategory.DataBind();
 }

(3) 操作处理。操作处理的功能是根据用户的单击事件进行对应的操作处理,具体说明如下:如果用户单击【修改】图标,则重定向修改表单界面;如果用户单击【删除】图标,则将执行删除处理。操作完毕后,重新载入列表界面,显示修改后的数据。对应的实现代码如下所示。

 protected void gvCategory_RowCommand(object sender,
GridViewCommandEventArgs e)
 {
  if(e.CommandName.ToLower() == "update")
  {   ///重定向到修改分类页面
   Response.Redirect("~/UpdateFenlei.aspx?CategoryID=" + e.
CommandArgument.ToString());
   return;
  }
  if(e.CommandName.ToLower() == "del")
  {   ///删除选择的相册分类
   Album album = new Album();
   if(album.DeleteFenlei(Int32.Parse(e.CommandArgument.      ToString())) > 0)
   {
    BindPageData();
   }
   return;
  }
 }
 protected void gvCategory_RowDataBound(object sender,
GridViewRowEventArgs e)
 {   ///添加删除确认的对话框
  ImageButton imgDelete = (ImageButton)e.Row.FindControl
("imgDelete");
  if(imgDelete != null)
  {
   imgDelete.Attributes.Add("onclick","return confirm(\"您确认要删除当前行的相册分类吗?\");");
  }
 }
 protected void gvCategory_PageIndexChanging(object sender,
GridViewPageEventArgs e)
 {   ///设置新的页码,并重新显示数据
  gvCategory.PageIndex = e.NewPageIndex;
  BindPageData();
 }
 protected void btnAdd_Click(object sender,EventArgs e)
 {
  Response.Redirect("~/AddFenlei.aspx");
 }
}

3.类别修改表单页面

1) 文件UpdateFenlei.aspx

类别修改表单页面文件UpdateFenlei.aspx的功能是:在表单内显示某类别的信息,当用户输入新数据并单击【提交】按钮后,将修改后的数据在系统库中更新。其具体实现流程如下所示。

(1) 插入1个TextBox控件,用于显示原类别名称,并输入修改后的类别名称。

(2) 插入2个RequiredFieldValidator控件,用于验证输入的修改名称不能为空。

(3) 插入1个RegularExpressionValidator控件,用于验证输入的修改名称的最大长度为50。

(4) 分别插入1个TextBoxWatermark控件和3个ValidatorCallout控件,实现Ajax验证提示效果。

为节省本书篇幅,在此不再将文件UpdateFenlei.aspx的实现代码一一列出。

2) 文件UpdateFenlei.aspx.cs

修改处理页面文件UpdateFenlei.aspx.cs的功能是:在表单内将被修改类的数据显示出来,并将输入的修改数据在系统库中更新。其具体实现流程如图2-21所示。


 

(1) 初始化处理。本模块页面初始化功能是由事件Page_Load实现的,其具体实现流程如下。

① 设置类别编号的CategoryID值。

② 调用BindPageData(categoryID)函数,获取此编号分类的数据。

上述功能的对应代码如下所示。

using ASPNETAJAXWeb.AjaxAlbum;
using System.Data.SqlClient;
public partial class UpdateFenlei : System.Web.UI.Page
{
 int categoryID = -1;
    protected void Page_Load(object sender, EventArgs e)
    {   ///获取被修改数据的ID
  if(Request.Params["CategoryID"] != null)
  {
   categoryID = Int32.Parse(Request.Params["CategoryID"].ToString());

  }
  ///显示被修改的数据
  if(!Page.IsPostBack && categoryID > 0)
  {
   BindPageData(categoryID);
  }
  ///设置按钮是否可用
  btnCommit.Enabled = categoryID > 0 ? true : false;
    }

(2) 数据处理。数据处理的功能是:通数据库访问层的方法GetSingleFenlei(categoryID)获取此分类的信息,然后将信息显示出来。对应的实现代码如下所示。

private void BindPageData(int categoryID)
{        ///读取数据
  Album album = new Album();
  SqlDataReader dr = album.GetSingleFenlei(categoryID);
  if(dr == null) return;
  if(dr.Read())
  {   ///显示数据
   tbName.Text = dr["Name"].ToString();
   AjaxAlbumSystem.ListSelectedItemByValue(ddlStatus,
   dr["Status"].ToString());
  }
  dr.Close();
 }

(3) 修改处理。修改处理的功能是:根据修改表单内的数据对此分类信息进行修改处理。处理完毕后则重定向管理列表页面,并清空表单数据。对应的实现代码如下所示。

protected void btnCommit_Click(object sender,EventArgs e)
{
 Album album = new Album();
      ///修改相册分类的属性
 if(album.UpdateFenlei(categoryID,tbName.Text,byte.Parse(ddlStatus.SelectedValue)) > 0)
  { ///重定向到管理页面  
   Response.Redirect("~/FenleiGuan.aspx");
  }
 }
 protected void btnClear_Click(object sender,EventArgs e)
 {
  tbName.Text = string.Empty;
 } 
}

2005年12月22日,深夜,类别的原理

历经5天的忙碌,今天终于完成了整个编码工作。一想到当初赶鸭子上架的情景,现在还唏嘘不已。在此之前,总觉得类别管理比较头疼,但是做完项目后发现,此类工作对我来说已经是小菜一碟了。类别管理在Web项目中很常见,如新闻系统中有新闻类别,电子商务系统中有产品类别……看似很复杂,其实它们的实现原理都是一致的。只要在数据库中增加一个类别表,我们就能通过后台对类别信息进行管理。在添加那些分类信息时,再增加一个类别值。例如添加新闻信息时,原来的添加表单可能分为标题、内容和时间,但是现在得分为标题、类别、内容和时间,即在数据库中增加了类别列。

现在唯一的工作就是系统调试了,这个工作由我来完成。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.6.2 相片显示
下一篇:2.7 测试
相关文章
图文推荐
排行
热门
最新书评
文章
下载
读书
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站