ASPNET开发实例

上传人:熏** 文档编号:240743290 上传时间:2024-05-04 格式:PPT 页数:54 大小:1.19MB
返回 下载 相关 举报
ASPNET开发实例_第1页
第1页 / 共54页
ASPNET开发实例_第2页
第2页 / 共54页
ASPNET开发实例_第3页
第3页 / 共54页
点击查看更多>>
资源描述
AHNU第十三章第十三章ASP.NET开发实例开发实例1ASP.NET开发实例开发实例v数据库设计数据库设计v业务逻辑业务逻辑v用户控件用户控件v用户登录用户登录v博客管理博客管理v配置配置v运行运行2ASP.NET开发实例开发实例v本书前面章节已经对本书前面章节已经对ASP.NET的大部分基本概的大部分基本概念和功能进行了介绍和讲解,本章将运用这些知念和功能进行了介绍和讲解,本章将运用这些知识设计并实现一个简单的博客(识设计并实现一个简单的博客(Blog)应用程序。)应用程序。v在构建自己的博客应用程序时,最重要的一点是,在构建自己的博客应用程序时,最重要的一点是,要大量用到要大量用到ASP.NET服务器控件。本章给出的服务器控件。本章给出的博客程序乍看上去似乎就是一个简单的练习,但博客程序乍看上去似乎就是一个简单的练习,但是实际上,它要求在一个典型的是实际上,它要求在一个典型的Web应用程序中应用程序中实现很多需要的功能,如构建并呈现主从关系或实现很多需要的功能,如构建并呈现主从关系或编辑和删除记录、隐藏或显示登录用户的内容和编辑和删除记录、隐藏或显示登录用户的内容和控件以及管理窗体的输入验证。控件以及管理窗体的输入验证。3数据库设计数据库设计v在本项目中,使用在本项目中,使用Access数据库。当然,也可数据库。当然,也可以将其移植到以将其移植到SQL Server上。该数据库只包含上。该数据库只包含两个表:一个是两个表:一个是Notes表,用于存储博客主人发表,用于存储博客主人发布的文章;另一个是布的文章;另一个是Comments表,用于存储表,用于存储其他用户的评论文章。其他用户的评论文章。Notes表储存文章的唯一表储存文章的唯一ID、文章标题或消息摘要、文章内容以及张贴的、文章标题或消息摘要、文章内容以及张贴的日期和时间。日期和时间。Comments表保存评论的唯一表保存评论的唯一ID、评论所对应的文章评论所对应的文章ID、作者的名称、作者的、作者的名称、作者的Email地址、评论内容以及张贴的日期和时间。地址、评论内容以及张贴的日期和时间。4业务逻辑业务逻辑v在以数据库为中心的典型的在以数据库为中心的典型的Web应用程序中,具应用程序中,具有数据层、业务层和表示层。数据层可能由一组有数据层、业务层和表示层。数据层可能由一组存储过程组成,而业务层由一组类代码组成,这存储过程组成,而业务层由一组类代码组成,这些类包装存储过程以确保数据的完整性、执行验些类包装存储过程以确保数据的完整性、执行验证以及对其他的业务规则进行强制。证以及对其他的业务规则进行强制。v不过,还是创建了一个负责验证输入并执行正确不过,还是创建了一个负责验证输入并执行正确的的SQL语句的类。所有代码以及表示层都将位于语句的类。所有代码以及表示层都将位于同一个程序集内。该业务类被命名为同一个程序集内。该业务类被命名为miniBlog,位于名称为,位于名称为“myHome”的命名空间下,所以它的命名空间下,所以它不会与代码隐藏类发生冲突。该类的源程序名为不会与代码隐藏类发生冲突。该类的源程序名为miniBlog.cs,位于,位于App_Code目录中。目录中。5构造函数构造函数v构造函数通过从构造函数通过从web.config的的appSettings部分定义的自定义项中检索连接字符串部分定义的自定义项中检索连接字符串ConnString,在类的构造函数方法中创建该连,在类的构造函数方法中创建该连接:接:public miniBlog()m_Connection=new OleDbConnection(ConfigurationManager.AppSettingsConnString);6执行执行SQL命令命令vExecuteCommand方法执行作为输入参数的方法执行作为输入参数的SQL命令:命令:private void ExecuteCommand(OleDbCommand cmd)cmd.Connection=m_Connection;try m_Connection.Open();cmd.ExecuteNonQuery();finally m_Connection.Close();7添加新文章添加新文章v以下代码是添加新文章的实现方法:以下代码是添加新文章的实现方法:void InsertNote(String title,String contents)OleDbCommand cmd=new OleDbCommand(INSERT INTO Notes(Title,Contents)VALUES(?,?);cmd.Parameters.Add(Title,OleDbType.VarChar).Value=title;cmd.Parameters.Add(Contents,OleDbType.LongVarChar).Value=contents.Replace(m_brChar,);ExecuteCommand(cmd);8添加新评论添加新评论vInsertComment方法用于插入一条新的评论。方法用于插入一条新的评论。该方法除了在该方法除了在Comments表中添加新的记录外,表中添加新的记录外,它还发送一封它还发送一封Email通知博客主人,该邮件包含通知博客主人,该邮件包含评注文本和一些有关所评论文章的信息。评注文本和一些有关所评论文章的信息。9InSertComment方法方法 public void InsertComment(int noteID,String author,String email,String comment)OleDbCommand cmd=new OleDbCommand(INSERT INTO Comments(NoteID,Author,Email,Comment)VALUES(?,?,?,?);cmd.Parameters.Add(NoteID,OleDbType.Integer).Value=noteID;cmd.Parameters.Add(Author,OleDbType.VarChar).Value=author;cmd.Parameters.Add(Email,OleDbType.VarChar).Value=email;cmd.Parameters.Add(Comment,OleDbType.LongVarChar).Value=comment.Replace(m_brChar,);10InSertComment方法方法 ExecuteCommand(cmd);/如果邮件提醒功能打开,则发送一封邮件给博客主如果邮件提醒功能打开,则发送一封邮件给博客主人人 String sendNotifications=ConfigurationManager.AppSettingsSendNotifications;if(sendNotifications!=null&sendNotifications=1)String noteTitle=String.Empty,noteDate=String.Empty;/读取父消息的细节(标题和发布时间)读取父消息的细节(标题和发布时间)cmd.CommandText=SELECT Title,Date FROM Notes WHERE NoteID=+noteID;m_Connection.Open();11InSertComment方法方法 OleDbDataReader reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);if(reader.Read()noteTitle=readerTitle.ToString();noteDate=(DateTime)readerDate).ToString();reader.Close();/创建创建Email提醒的内容提醒的内容 String mailMsg=String.Format(0(email:1 刚刚在你的博客上张贴了评论刚刚在你的博客上张贴了评论)12InSertComment方法方法 +“2”,张贴时间为,张贴时间为3。评论内容如下:。评论内容如下:445,author,email,noteTitle,noteDate,Environment.NewLine,comment);/发送邮件发送邮件 SmtpClient smtpClient=new SmtpClient();smtpClient.Send(miniBlog,ConfigurationManager.AppSettings AdminEmail,新的评论新的评论,mailMsg);13读取文章列表读取文章列表vGetNotes方法是业务类的重要组成元素之一,方法是业务类的重要组成元素之一,该方法对指定时间段内张贴的消息进行检索。该该方法对指定时间段内张贴的消息进行检索。该方法选择使用方法选择使用DataAdapter以及以及DataSet来检来检索和读取数据。索和读取数据。14GetNotes方法方法 DataSet GetNotes(DateTime fromDate,DateTime toDate)DataSet ds=new DataSet();/查询特定时间段内张贴的文章,填入查询特定时间段内张贴的文章,填入DataSet的的MyNotes表中表中 OleDbDataAdapter da=new OleDbDataAdapter(SELECT*FROM Notes WHERE DateTime BETWEEN?AND?ORDER BY DateTime DESC,m_Connection);da.SelectCommand.Parameters.Add(FromDate,OleDbType.Date).Value=fromDate;da.SelectCommand.Parameters.Add(ToDate,OleDbType.Date).Value=toDate.AddDays(1);m_Connection.Open();da.Fill(ds,MyNotes);m_Connection.Close();return ds;15读取评论列表读取评论列表vGetComments方法用于读取与特定文章相关方法用于读取与特定文章相关的评论列表。该方法与的评论列表。该方法与GetNotes方法类似,也方法类似,也是使用是使用DataSet和和DataAdapter来检索数据。来检索数据。v该方法有两个参数,一个是需要读取评论的文章该方法有两个参数,一个是需要读取评论的文章ID(noteID),另一个是参数),另一个是参数count,用于统,用于统计评论数,该参数是引用参数,会将其值的变化计评论数,该参数是引用参数,会将其值的变化返回给调用者。返回给调用者。16GetComments方法方法 public DataSet GetComments(int noteID,ref int count)DataSet ds=new DataSet();String selectCmd=SELECT*FROM Comments WHERE NoteID=?ORDER BY DateTime DESC;OleDbDataAdapter da=new OleDbDataAdapter(selectCmd,m_Connection);da.SelectCommand.Parameters.Add(NoteID,OleDbType.Integer).Value=noteID;m_Connection.Open();da.Fill(ds,MyComments);count=ds.TablesMyComments.Rows.Count;m_Connection.Close();return ds;17读取文章和评论数据读取文章和评论数据vGetNoteData方法和方法和GetCommentData方方法分别用于特定法分别用于特定ID的文章和评论,这两个方法的的文章和评论,这两个方法的编程是非常类似的,所以放在一起讲解。这两个编程是非常类似的,所以放在一起讲解。这两个方法都使用方法都使用DataReader对象来检索数据库信息,对象来检索数据库信息,都使用都使用miniBlog类的私有成员类的私有成员m_Connection来打开数据库连接,并且使用来打开数据库连接,并且使用try-finally块来读取数据,以确保读取错误时也块来读取数据,以确保读取错误时也能够正确地关闭数据库连接。在能够正确地关闭数据库连接。在Web应用程序中,应用程序中,如果不需要进行本地编辑和缓存数据副本,通常如果不需要进行本地编辑和缓存数据副本,通常是选择是选择DataReader。18GetNoteData方法方法 public void GetNoteData(int noteID,ref String title,ref String contents,ref String post_time)OleDbCommand cmd=new OleDbCommand(SELECT*FROM Notes WHERE NoteID=+noteID,m_Connection);try m_Connection.Open();OleDbDataReader reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);if(reader.Read()title=readerTitle.ToString();contents=readerContents.ToString().Replace(,m_brChar);post_time=readerDateTime.ToString();reader.Close();finally m_Connection.Close();19GetCommentData方法方法 public void GetCommentData(int commentID,ref String author,ref String email,ref String comment)OleDbCommand cmd=new OleDbCommand(SELECT*FROM Comments WHERE CommentID=+commentID,m_Connection);try m_Connection.Open();OleDbDataReader reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);if(reader.Read()author=readerAuthor.ToString();email=readerEmail.ToString();comment=readerComment.ToString().Replace(,m_brChar);reader.Close();finally m_Connection.Close();20更新文章和评论数据更新文章和评论数据vUpdateNote方法和方法和UpdateComment方法方法分别用于更新文章内容和评论内容。这两个方法分别用于更新文章内容和评论内容。这两个方法分别将分别将Notes表和表和Comments表所需的字段内表所需的字段内容作为参数传递给方法,然后构建容作为参数传递给方法,然后构建OleDbCommand对象,再调用前面介绍的对象,再调用前面介绍的ExecuteCommand方法来执行该命令,以更方法来执行该命令,以更新数据库记录。新数据库记录。21UpdateNote方法方法 public void UpdateNote(int noteID,String title,String contents)OleDbCommand cmd=new OleDbCommand(UPDATE Notes SET Title=?,Contents=?WHERE NoteID=?);cmd.Parameters.Add(Title,OleDbType.VarChar).Value=title;cmd.Parameters.Add(Contents,OleDbType.LongVarChar).Value=contents.Replace(m_brChar,);cmd.Parameters.Add(NoteID,OleDbType.Integer).Value=noteID;ExecuteCommand(cmd);22UpdateComment方法方法 public void UpdateComment(int commentID,String author,String email,String comment)OleDbCommand cmd=new OleDbCommand(UPDATE Comments SET Author=?,Email=?,+Comment=?WHERE CommentID=?);cmd.Parameters.Add(Author,OleDbType.VarChar).Value=author;cmd.Parameters.Add(Email,OleDbType.VarChar).Value=email;cmd.Parameters.Add(Comment,OleDbType.LongVarChar).Value=comment.Replace(m_brChar,);cmd.Parameters.Add(CommentID,OleDbType.Integer).Value=commentID;ExecuteCommand(cmd);23删除文章和评论数据删除文章和评论数据vDeleteNote方法和方法和DeleteComment方法分方法分别用于删除指定的文章和评论。这两个方法都通别用于删除指定的文章和评论。这两个方法都通过过ExecuteCommand方法执行一个方法执行一个OleDbCommand对象包含的对象包含的Delete语句。语句。24DeleteNote方法方法 public void DeleteNote(int noteID)OleDbCommand cmd=new OleDbCommand(DELETE FROM Notes WHERE NoteID=+noteID);ExecuteCommand(cmd);cmd.CommandText=DELETE FROM Comments WHERE NoteID=+noteID;ExecuteCommand(cmd);25DeleteComment方法方法 public void DeleteComment(int commentID)OleDbCommand cmd=new OleDbCommand(DELETE FROM Comments WHERE CommentID=+commentID);ExecuteCommand(cmd);26用户控件用户控件v在本案例中,我们设计了两个用户控件,分别用在本案例中,我们设计了两个用户控件,分别用于编辑和修改博客文章和评论。使用用户控件来于编辑和修改博客文章和评论。使用用户控件来编辑文章和评论,能够更好地将其内容封装在一编辑文章和评论,能够更好地将其内容封装在一个对象中;而且很多情况下,是不允许其他用户个对象中;而且很多情况下,是不允许其他用户对博客内容进行修改的,他们只能浏览文章或者对博客内容进行修改的,他们只能浏览文章或者发表评论,只有博客主人才能对内容进行修改,发表评论,只有博客主人才能对内容进行修改,这样就需要在非主人登录的时候屏蔽掉修改和编这样就需要在非主人登录的时候屏蔽掉修改和编辑的功能。使用用户控件可以比较方便地将整个辑的功能。使用用户控件可以比较方便地将整个控件设置为不可见。控件设置为不可见。27文章编辑控件文章编辑控件vNoteEditor.ascx是用于插入和修改博客文章是用于插入和修改博客文章的用户控件。该用户控件有两个的用户控件。该用户控件有两个TextBox控件和控件和一个一个Button控件组成(如图控件组成(如图 13 4)。)。TextBox1控件用于编辑控件用于编辑Notes表的表的Title字段,字段,TextBox2控件用于编辑控件用于编辑Notes表的表的Contents字段,其字段,其TextMode属性设置为属性设置为MultiLine,这,这样可以编辑多行文本。另外还有两个样可以编辑多行文本。另外还有两个HiddenField控件,其控件,其ID分别是分别是noteID和和isModify,用于保存文章编号和判断是添加新,用于保存文章编号和判断是添加新文章还是修改原有文章。文章还是修改原有文章。28NoteEditor.ascx 标题:标题:内容:内容:29NoteEditor.ascx.cspublic partial class NoteEditor:System.Web.UI.UserControlpublic event EventHandler Submit_Note;public Int32 NoteIDget return Convert.ToInt32(noteID.Value);set noteID.Value=value.ToString();public String Titleget return TextBox1.Text;set TextBox1.Text=value;30NoteEditor.ascx.cspublic String Contentsget return TextBox2.Text;set TextBox2.Text=value;public String Button_Textget return Button1.Text;set Button1.Text=value;/true表示修改原有记录,表示修改原有记录,false表示插入新记录表示插入新记录public Boolean IsModifyget return Convert.ToBoolean(isModify.Value);set isModify.Value=value.ToString();31NoteEditor.ascx.cspublic void SetModify(String noteTitle,String noteContents,int int_NoteID)IsModify=true;Button_Text=提交更改的消息提交更改的消息;Title=noteTitle;Contents=noteContents;NoteID=int_NoteID;public void SetInsert()Title=;Contents=;IsModify=false;Button_Text=提交新消息提交新消息;/触发触发Submit_Note事件事件protected void Button1_Click(object sender,EventArgs e)if(Submit_Note!=null)Submit_Note(sender,e);32评论编辑控件评论编辑控件vCommentEditor.ascx用户控件用于插入和修用户控件用于插入和修改评论文章。该用户控件由改评论文章。该用户控件由3个个TextBox控件、控件、1个个Button控件和控件和1个个RegularExpressionValidator控件组成。控件组成。33CommentEditor.ascx 作者:作者:Email:评论:评论:34CommentEditor.ascx.cspublic partial class CommentEditor:System.Web.UI.UserControlpublic event EventHandler Submit_Comment;public String Author get return TextBox_Author.Text;set TextBox_Author.Text=value;public String Email get return TextBox_Email.Text;set TextBox_Email.Text=value;public String Comment get return TextBox_Comment.Text;set TextBox_Comment.Text=value;35CommentEditor.ascx.cspublic Int32 NoteID get return Convert.ToInt32(noteID.Value);set noteID.Value=value.ToString();public Int32 CommentID get return Convert.ToInt32(commentID.Value);set commentID.Value=value.ToString();public Boolean IsModify get return Convert.ToBoolean(isModify.Value);set isModify.Value=value.ToString();public String Button_Text get return Button_Submit.Text;set Button_Submit.Text=value;36CommentEditor.ascx.cspublic void SetModify(String str_author,String str_email,String str_comment,int int_commentID)IsModify=true;Button_Text=修改评论修改评论;Author=str_author;Email=str_email;Comment=str_comment;CommentID=int_commentID;public void SetInsert(int int_noteID)IsModify=false;Button_Text=插入新评论插入新评论;NoteID=int_noteID;Author=;Email=;Comment=;protected void Button_Submit_Click(object sender,EventArgs e)/激活激活Submit_Comment事件处理函数事件处理函数if(Submit_Comment!=null)Submit_Comment(sender,e);37用户登录用户登录v现在,实现用户任务的代码基本上全部完成。但现在,实现用户任务的代码基本上全部完成。但是,另一方面,博客主人必须直接在数据表上添是,另一方面,博客主人必须直接在数据表上添加、插入和删除文章与评论。为了访问该表,下加、插入和删除文章与评论。为了访问该表,下一步的工作就是开发一个登录页并修改博客的主一步的工作就是开发一个登录页并修改博客的主页,这样当博客主人登录后,该页面将显示用于页,这样当博客主人登录后,该页面将显示用于管理操作的其他控件。管理操作的其他控件。v用户登录窗体文件为用户登录窗体文件为Login.aspx,该窗体页包,该窗体页包含两个含两个TextBox控件、一个控件、一个CheckBox控件、控件、一个一个Button控件和一个控件和一个Label控件。控件。TextBox控件的控件的ID分别为分别为UserName、Password,用,用于输入用户名称与密码;于输入用户名称与密码;CheckBox控件控件Persistent表示是否保存持久的表示是否保存持久的Cookie。38web.config39login.aspx.csvoid Page_Load(object sender,EventArgs e)if(!IsPostBack)if(Request.Paramslogout=true)FormsAuthentication.SignOut();void LoginUser_Click(object sender,EventArgs e)/检查用户名和密码检查用户名和密码 if(FormsAuthentication.Authenticate(UserName.Text,Password.Text)/如果检查通过,保存如果检查通过,保存Cookie FormsAuthentication.SetAuthCookie(UserName.Text,Persistent.Checked);/重定向到重定向到Default.aspx Response.Redirect(Default.aspx,true);else InvalidLogin.Visible=true;40博客管理博客管理v完成登录后,就可以进入博客应用程序的主页面完成登录后,就可以进入博客应用程序的主页面对博客文章和评论进行阅读、添加、修改和删除对博客文章和评论进行阅读、添加、修改和删除操作了。不过,对于访问博客的客户端来说,可操作了。不过,对于访问博客的客户端来说,可以分为两种情况,一种是博客主人的访问,另一以分为两种情况,一种是博客主人的访问,另一种就是其他人的访问。对于非博客主人的访问,种就是其他人的访问。对于非博客主人的访问,只能浏览博客中的文章及其相应评论,或者对已只能浏览博客中的文章及其相应评论,或者对已有的文章做出自己的评论,他们无权修改、删除有的文章做出自己的评论,他们无权修改、删除原有的数据和内容,无论是文章还是评论。而博原有的数据和内容,无论是文章还是评论。而博客主人则可以拥有所有权限,包括添加文章、修客主人则可以拥有所有权限,包括添加文章、修改和删除个各种内容等。改和删除个各种内容等。41文章列表文章列表v文章列表显示的是某个时间段中博客主人发表的文章列表显示的是某个时间段中博客主人发表的所有文章标题,它对应的是所有文章标题,它对应的是Notes表中表中Title字字段,按照发表时间倒序排列。文章列表的显示采段,按照发表时间倒序排列。文章列表的显示采用了用了GridView控件,该控件绑定到一个控件,该控件绑定到一个AccessDataSource数据源上。数据源上。42文章内容文章内容v数据源数据源AccessDataSource2用于检索选中的文章内容。用于检索选中的文章内容。该数据源的该数据源的DataFile同样也是同样也是“/App_Data/Blog.mdb”。不过,它只需要在不过,它只需要在Notes表中检索一个特定的记录即可。表中检索一个特定的记录即可。SELECT*FROM Notes WHERE(NoteID=?)v然后在然后在“参数参数”列表中添加列表中添加“NoteID”参数,对应的参数,对应的“参参数源数源”选择选择Control,“ControlID”选择选择GridView1。其相应的参数代码如下:其相应的参数代码如下:43评论列表及其内容评论列表及其内容v本例使用了本例使用了Repeater控件来显示评论列表及其控件来显示评论列表及其内容。多数情况下,内容。多数情况下,ASP.NET的高级模板化控的高级模板化控件是用于数据表示的最佳选择。但是,在需要灵件是用于数据表示的最佳选择。但是,在需要灵活地进行各种各样的布局时,活地进行各种各样的布局时,Repeater控件才控件才是正选。是正选。v评论列表呈现的是与所选文章相关的评论,也就评论列表呈现的是与所选文章相关的评论,也就是是Comments表中所有的表中所有的NoteID与所选文章与所选文章的的NoteID相等的记录。最方便的办法当然是使相等的记录。最方便的办法当然是使用用GridView控件,但是控件,但是GridView用的是网格用的是网格形式,这并不符合一般的博客风格,因此使用自形式,这并不符合一般的博客风格,因此使用自定义格式的定义格式的Repeater控件。控件。44asp:Label ID=CommentAuthor runat=server Text=/发表于:表于:asp:Literal ID=literal_CommentTime runat=server Text=/Email:a class=comment href=评论:asp:LinkButton ID=DeleteComment Text=删除除 runat=server CommandArgument=CommandName=Delete Visible=/asp:LinkButton ID=ModifyComment Text=修改修改 runat=server CommandArgument=CommandName=Modify Visible=/asp:Label ID=CommentContents runat=server Text=/45时间段选择时间段选择 protected void Calendar1_SelectionChanged(object sender,EventArgs e)Literal_CommentsCount.Text=;GridView1.SelectedIndex=-1;SessionFromDate=Calendar1.SelectedDates0;SessionToDate=Calendar1.SelectedDatesCalendar1.SelectedDates.Count-1.AddDays(1);DataBind();46OnSubmit_Note_Click方法方法 protected void OnSubmit_Note_Click(object sender,EventArgs e)if(NoteEditor1.IsModify)myBlog.UpdateNote(NoteEditor1.NoteID,NoteEditor1.Title,NoteEditor1.Contents);else myBlog.InsertNote(NoteEditor1.Title,NoteEditor1.Contents);GridView1.SelectedIndex=0;NoteEditor1.Visible=false;DataBind();47OnSubmit_Comment_Click方法方法 protected void OnSubmit_Comment_Click(object sender,EventArgs e)if(CommentEditor1.IsModify)myBlog.UpdateComment(CommentEditor1.CommentID,CommentEditor1.Author,CommentEditor1.Email,CommentEditor1.Comment);else myBlog.InsertComment(CommentEditor1.NoteID,CommentEditor1.Author,CommentEditor1.Email,CommentEditor1.Comment);CommentEditor1.Visible=false;int noteID=(int)(GridView1.SelectedValue),count=0;Repeater1.DataSource=myBlog.GetComments(noteID,ref count);Literal_CommentsCount.Text=共有共有+count.ToString()+条评论。条评论。;DataBind();48SelectedIndexChanged事件事件 void GridView1_SelectedIndexChanged(object sender,EventArgs e)int noteID=(int)(GridView1.SelectedValue),count=0;Repeater1.DataSource=myBlog.GetComments(noteID,ref count);Literal_CommentsCount.Text=共有共有+count.ToString()+条评论。条评论。;Repeater1.DataBind();49“修改修改”按钮按钮 protected void LinkButton_Modify_Note_Click(object sender,EventArgs e)String str_Title=String.Empty,str_Contens=String.Empty,str_DateTime=String.Empty;int int_NoteID=Convert.ToInt32(GridView1.SelectedValue);myBlog.GetNoteData(int_NoteID,ref str_Title,ref str_Contens,ref str_DateTime);NoteEditor1.SetModify(str_Title,str_Contens,int_NoteID);NoteEditor1.Visible=true;50“删除删除”按钮按钮 protected void LinkButton_Delete_Note_Click(object sender,EventArgs e)int int_NoteID=Convert.ToInt32(GridView1.SelectedValue);myBlog.DeleteNote(int_NoteID);DataBind();/重新重新绑定数据,刷新定数据,刷新页面面显示示51“发表评论发表评论”按钮按钮 protected void LinkButton_Post_Comment_Click(object sender,EventArgs e)CommentEditor1.Visible=true;CommentEditor1.SetInsert(Convert.ToInt32(GridView1.SelectedValue);CommentEditor1.Focus();52配置配置v整个整个mini Blog应用程序的运行还需要在应用程序的运行还需要在web.config文件中添加一些文件中添加一些appSettings值,向应用程序设置集合值,向应用程序设置集合添加名称添加名称/值对形式的自定义设置。其代码如下:值对形式的自定义设置。其代码如下:53运行运行vmini Blog应用程序大致的设计就完成了,将网应用程序大致的设计就完成了,将网站复制到站复制到IIS的的Web根目录中,通过根目录中,通过http:/localhost/miniBlog/Default.aspx即可访问该应用程序。即可访问该应用程序。54
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!