首 页 | 网页模板 | 教程 | 源码下载 | 书籍下载 | 图片素材 | 字体 | JAVA特效 | FLASH源码 | 软件 | 矢量 | 论坛 | 其它 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 |
当前在线
广告:P4服务器电信机房6999/年即送产权 | 疾风下载
第四章 留言本首页的制作
2004-7-19 6:15:00  作者:李飞  来源:未知 网友评论 0 条 论坛
  
          6、编写WEB控件代码

             解决复选框的显示问题,编写一段删除记录的WEB控件代码。

          首先在页面中引入Macromedia控件(Macromedia公司开发的控件,集成在DreamweaverCtrls.dll控件程序集中,在标签选择器中可获得它)的DELETE控件,切换到源代码视图,在<script></script>代码块(即上面添加的函数代码)的下面编写以下代码:

<MM:Delete id="Delete1" runat="server"></MM:Delete>
          必意注意:如果你想单独引用这个控件,则必须在页面顶部用以下语句调用DreamweaverCtrls.dll程序集:

<%@ Register TagPrefix="MM" Namespace="DreamweaverCtrls" Assembly="DreamweaverCtrls,version=1.0.0.0,publicKeyToken=836f606ede05d46a,culture=neutral" %>
          如果你在DW MX在页面插入其它的服务器行为如数据集等,这个语句已被插入到页面,不用手工添加了。上面语句没有换行,因为表格排版问题被挤成两行。

          在页面引入Delete控件,并声明在服务器端运行,还要编写一段SQL语句和读取配置文件中的连接字符串,以及响应删除按扭的事件句柄。

       先在页面中加一个WEB控件按扭。切换到源代码视图,在页面的最底部(当然也可以是其它位置,我选在分页编码的下面),打开“插入”面板切换到“ASP.NET”选项卡。如下图:

            

                在页中插入三个WEB内置控件,一个Button控件(按扭),两个label控件(动态文本显示)。 单击“”,打开标签编辑器,填写控件的ID名称和按扭文本,如下图:

            

             再选中“事件”“OnClick”,在文本框中输入事件名称“sub_delete”,如下图:

               

                单击“确定”保存设置。标签编辑器便在你想要的地方插入Button控件代码:

<asp:button ID="ButtonDelete" runat="server" Text="删除留言" OnClick="sub_delete" />
             这时候请不要预览页面,会报错的。报错信息如下:

            

          因此,我们还有编写一段响应该按扭的事件代码,即按下按扭时执行相应的语句命令,比如删除记录。

          继续添加一个LABEL控件,单击“”,填ID名称和文本就行了,如下图。这个控件放在<form></form>表单标签内。

             

          按这个方法添加另一个label控件,ID名称为Label2,如下图:

            

          按确定保存设置。DW MX就在页面插入Label控件代码,切换到代码视图,把label1的文本改为:

Text="<script Language=JavaScript >alert(''''成功删除留言!'''')</script>
          label2的文本改为:

Text="<script Language=JavaScript >alert(''''对不起!请选择要删除的留言!'''')</script>
       这样可以弹出一个消息框提示:

         

       上面仅是做了准备工作,还未有真正添加删除代码。下面的代码很长,不用手写了,直接复制过去,仔细阅读注释理解代码执行原理。

<script runat="server">
dim xxx as string''''声明一个全局变量
Sub Page_Load(Src As Object, E As EventArgs)''''页载载入时触发事件
xxx=request.form("delete")''''接收复选框集合值,并赋值给XXX变量
label1.Visible="False"''''初始化Label1控件不显示
label2.Visible="False"''''初始化Label2控件不显示
ButtonDelete.Visible="False"''''初始化扭按控件不显示
if not session("MM_Username") is nothing then''''当session不为空时
ButtonDelete.Visible="true"''''session变量有值时即显示按扭
end if
Delete1.ConnectionString= _
System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING_MyMessageData")
''''读取数据库连接字符串
Delete1.CommandText="DELETE FROM MessageBook WHERE id in ("+ xxx +")"''''SQL删除语句
End Sub
Sub sub_delete(Src As Object, E As EventArgs)''''这是响应单击Button按扭控件的代码
if not session("MM_Username") is nothing then''''当session不为空时
if xxx<>"" then''''当复选框有钩选时
Delete1.Debug=true''''执行Delete控件删除命令
label1.Visible="True"''''成功删除记录,label1控件显示输出成功提示信息。
else''''否则
label2.Visible="True"''''没有选择删除项,label2控件显示输出出错提示。
end if
end if
End Sub
</script>
          上面这段代码块放在刚才定义的函数块下面。现在可以预览页面了,测试时首先给session("MM_Username")赋值,用以下语句:

session("MM_Username")="李飞"
             放在Sub Page_Load(Src As Object, E As EventArgs)的下一句。试试运行页面,按扭、复选框等都显示出来了?试删除几条记录,能否成功。我试能行了,不知你是否行?

          7、格式化文本显示

                删除留言的问题终于解决了,并且还能批量删除。但是你会注意到一个问题,在往数据库中添加记录的时候,明明有回车或换行的,可是到了这里却变成了一行了。再编写一段函数如下:

function strbrvbs(messagetext as string) as string
strbrvbs=Replace(messagetext,"<", "&lt;")
strbrvbs=Replace(strbrvbs,">", "&gt;")
strbrvbs=Replace(strbrvbs ,vbCrLf,"<br>")
strbrvbs=Replace(strbrvbs,chr(32)&chr(32), "&nbsp;&nbsp;&nbsp;&nbsp;")
end function
          这段代码放在刚才定义的函数段下面。然后找到

<%# DataSet1.FieldValue("MessageBook", Container) %>
       替换为:

<%# strbrvbs(DataSet1.FieldValue("MessageBook", Container)) %>
       就解决回车换行问题了。

                   8、显示管理员回复内容

                管理员回复实际上是更新记录,回复内容用一个字段保存,访客留言和管理员回复内容同一条记录。当这个字段的该行有记录时,则显示回复内容。把回复字段绑定到页面,看它的值是否为“Nothing”,再决定是否显示回复内容及表格。

                编写以下函数:

function AdminRel(relmessage)
if relmessage<>Nothing then
AdminRel="<br><table width=550 border=0 cellpadding=2 cellspacing=0 bgcolor=#E1F3FF>" & _
"<tr><td>&nbsp;管理员回复:" & strbrvbs(relmessage) &"</td></tr></table>"
end if
end function
          然后在页面中调用函数:

<%#AdminRel(DataSet1.FieldValue("MessageAdmin", Container)) %>
          这句代码放在留言内容字段的右边。运行结果:

      

    没有回复时则不显示表格。

                         好了,至此,留言本的首页终于制作完毕。
共分2页  [1] [2] 
>> 相关文章

关于网站 | 客服中心 | 服务条款 | 友情链接 | 广告联系 | 本站历程 | 网站导航

吉ICP备05000107号