Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143980
  • 博文数量: 48
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-03 20:57
文章分类

全部博文(48)

文章存档

2010年(4)

2009年(23)

2008年(21)

我的朋友

分类:

2008-07-31 08:52:48

实例说明

留言板是目前网络比较流行的、方便的、快捷的一种用来保存留言的网络工具。用户可以通过留言板为网站管理人员留言,也可以作为用户与管理员交流的通信工具。留言板通常应用在企业门户网站、电子商务销售平台网等网站。本实例开发的留言板如图所示。

图  留言板的信息展开

技术要点

DynamicPopulate控件提供了一种动态效果,能通过WebService或访问服务器端代码获取一段HTML文本,并替换掉目标控件上原来的内容。DynamicPopulate控件的主要属性及说明如表所示,

表 DynamicPopulate控件的属性及说明

属性

说明

TargetControlID

将具备“动态呈现”的Panel控件的值

ClearContentsDuringUpdate

当更新时,是否清除目标元素中的既有HTML内容。若没有指定,将会自动 清除 HTML内容,默认值为true

SerivcePath

将要调用的Web服务的URL。如果调用一个页面方法,就不用设置些属性

SerivceMethod

Web服务方法或页面方法的名称

PopulateTriggerControlID

一个选择的属性,用来指定某个控件被单击时,要触发目标元素进行动态呈现

UpdatingCssClass

在异步调用(Asynchronous Call)时,欲套用到目标元素的CSS类属性

CustomScript

替换原本将要调用的Web服务方法或页面方法,改调用指定的脚本(Script),它必须计算机为一个字符串值

ContextKey

将传递给Web方法的任意字符串值。比方说,动态呈现欲显示一个绑定到资料的Repeater, 那么所传入的字符串值可以是目前该行数据的ID值

 

实现过程

(1)新建一个AJAX网站,命名为07,默认窗体为Default.aspx。

(2)在Default.aspx窗体中主要添加一个ScriptManager控件、一个UpdatePanel控件和一个GridView控件,分别用于管理页面中的AJAX控件、实现局部更新、显示留言板信息。

(3)对GridView控件进行编辑列,添加一个TemplateField项。

(4)编辑GridView模板,在模板中设计代码如下:


                   
              
                      
                               

                                 
                                    
                                                留言标题:
                                            
                                                <%# Eval("title") %>
                                            
                                        

                                        
                                            
                                                留言内容:
                                            
                                                <%# Eval("message") %>
                                            
                                        

                                        
                                            
                                            
                                            
                                                
                                                    

         
                 我要留言 '>我要回复
         展开>> 
                  
                                                    

                                                    
          
           
                                                            
                                                        
                                                    

                                                    
          
                  ServiceMethod="GetReplyByMessage" ContextKey='<%# Eval("ID") %>' ClearContentsDuringUpdate="true"
                        PopulateTriggerControlID="hlnkShow" TargetControlID="plReturn">
        
                                                        
                                                    

                                                
  
           
              

                                            
                                        
                                        
                                            
                                            
                                            
                                                
                                                    
                                               
                                                   留言人联系方式:
                                              
                                              '>
                                                     <%# Eval("Email") %>
                                                  
                                              
                                            时间:
                                        
                                   [<%# Eval("CreateDate") %>]
                               
                       
                   
                 
           
        /table>
   

(5)创建一个Web服务,命名为Return.asmx。在WEB服务中创建GetReplyByMessage方法来实现留言板中的信息展开。代码如下:

");
        }
        return returnHtml.ToString();
    }
    [WebMethod]
    public string GetReplyByMessage(string contextKey)
    {
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Ex18_07.mdb"));
        OleDbDataAdapter da = new OleDbDataAdapter("select * from tb_reply  where messageID = " + contextKey + " Order by CreateDate DESC", conn);
        DataSet ds = new DataSet();
        da.Fill(ds);

        if (ds == null || ds.Tables.Count <= 0 || ds.Tables[0].Rows.Count <= 0)
        {
            return string.Empty;
        }
        StringBuilder returnHtml = new StringBuilder();
        foreach (DataRow row in ds.Tables[0].Rows)
        {
            returnHtml.Append("
回复" + row["CreateDate"]);
            returnHtml.Append("
");
            returnHtml.Append(row["Reply"]);
            returnHtml.Append("

(6)在Default.aspx.cs文件获取数据库中的留言信息,实现代码如下:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Ex18_07.mdb"));
            OleDbDataAdapter da = new OleDbDataAdapter("select * from tb_Message  Order by CreateDate DESC", conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }
    }

阅读(5913) | 评论(45) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-07-24 10:28:37

[url=http://www.viccol.com/]eq2 platinum[/url] [url=http://www.viccol.com/]eq2 gold[/url] [url=http://www.innicc.com/buy-dofus.asp]dofus kamas[/url] [url=http://www.runescapegogo.com/]runescape[/url] [url=http://www.viccol.com/]eq2 plat[/url] [url=http://www.viccol.com/]everquest2 plat[/url] [url=http://www.runescapegogo.com/]runescape gold[/url] [url=http://www.viccol.com/]everquest2 gold[/url] [url=http://www.viccol.com/]everquest2 platinum[/url] [url=http://www.runescapegogo.com/]rs

chinaunix网友2009-06-13 20:47:39

[url=http://www.hzgames.com]rs gold[/url] [url=http://www.hzgames.com]rs money[/url] [url=http://www.hzgames.com]rs2 gold[/url] [url=http://www.hzgames.com]rs2 money[/url] [url=http://www.hzgames.com]runescape[/url] [url=http://www.hzgames.com]runescape gold[/url] [url=http://www.hzgames.com]runescape money[/url] [url=http://www.rs2baby.com]gold[/url] [url=http://www.rs2baby.com]money[/url] [url=http://www.rs2baby.com]rs gold[/url] [url=http://www.rs2baby.com]rs money[/url] [url=h

chinaunix网友2009-05-27 17:55:53

http://www.ogdeal.com/sell-wow-gold.html http://www.ogdeal.com/sell-maplestory-mesos.html http://www.ogdeal.com/sell-wow-gold-us.html http://www.ogdeal.com/sell-everquest-2.html http://www.ogdeal.com/sell-ffxi-gil.html http://www.ogdeal.com/sell-eve-online.html http://www.ogdeal.com/sell-aoc-gold-eu.html http://www.ogdeal.com/sell-silkroad-online.html http://www.ogdeal.com/sell-lineage-2.html http://www.ogdeal.com/sell-lotro-gold-us.html http://www.ogdeal.com/sell-lotro-gold-eu.html h

chinaunix网友2009-05-09 15:32:47

I have some wow gold,do you buy a lite Wow power leveling and buy some wow gold,world of warcraft gold wow I buy a lite wow gold we are professional wow gold kaufen store on line.wow gold kaufen we provide cheap wow gold to each loyal and power leveling and buy wow gold ,the world of wow gold

chinaunix网友2009-05-09 15:32:03

[url=http://www.meinwowgold.de][b]wow gold[/b][/url] store welcome you! if you buy some [url=http://www.euwowgold.com/powerleveling/wow-powerleveling.htm][b]Wow power leveling[/b][/url] and welcome to there buy [url=http://www.goldsoon.com][b]wow gold[/b][/url],world of warcraft [url=http://www.euwowgold.com][b]gold wow[/b][/url] I buy a lite [url=http://www.hiwowgold.com][b]wow gold[/b][/url] we are professional [url=http://www.goldsoon.de][b]wow gold kaufen[/b][/url] store on line.[url=http:/