上一篇:ASP.NET设计控件净化网站语言(1) >>
ASP.NET设计控件净化网站语言(2)
控件要检查用户提交的内容是否包含“攻击性”词语,攻击性词语由一个XML文件定义,XML文件的结构如下:
<?xml version="1.0"? encoding="GB2312">
<words>
<word>词语一</word>
<word>词语二</word>
</words>
本文的复合控件(Composite)包含三个ASP.net服务器控件:一个Textbox控件,一个Label控件,还有一个Button控件。当用户点击Button控件,Composite检查用户提交的文本是否包含了XML文件中指定的词语(XML文件的默认名字是bad_words.xml,通过一个自定义属性定义),并抛出一个自定义事件。另外,Composite控件还将它的Label子控件的一个Text属性显露成顶级属性。
复合控件可以有选择地将子控件显露成属性,或者有选择地将子控件的属性和事件作为顶级属性和事件显露出来。当复合控件整合来自子控件的属性时,它通常只是简单地委托子控件执行操作,如下面的例子所示:
// 将操作委托给标签对象,标签对象是一个
// System.Web.UI.WebControls.Label的实例
Public Property Text() As String
Get
EnsureChildControls()
Return label.Text
End Get
Set
EnsureChildControls()
label.Text = value
End Set
End Property
我们需要一个文本输入框让用户输入内容,一个按钮来提交表单,还要一个向用户反馈信息的文本标签。下面我们来看看Web表单的代码,复合控件就是在这里实例化的:
【composite.aspx】
<%@ page language="VB" debug="false" trace="false" %>
<%@ ReGISter TagPrefix="Custom" Namespace="CustomControls" Assembly = "CustomControls" %>
<html>
<script language="VB" runat=server>
Private Sub CheckText(sender As Object, e As CheckEventArgs)
If e.Match = false Then
Composite.Text = "<h2>发布内容请遵守本站规则!不得发布攻击性言辞!</h2>"
Else
Composite.Text = "你提交的内容已通过检查!"
End If
End Sub
</script>
<body>
<h1>语言净化控件实例</h1><br>
<form runat=server>
<Custom:Composite id = "Composite" OnCheck = "CheckText"
filename = "bad_words.xml" runat = server/></form></body>
</html>
上面的代码首先注册指定的复合控件。我们将把控件的代码编译成一个.dll文件,放入应用的bin目录,这是ASP.NET首先搜索的位置。在Web表单构成的用户界面中,我们实例化了自定义控件,同时指定了:
⑴ 当控件抛出OnCheck事件,执行一个本地的子过程CheckText。我们把复合控件的标签的文本通过一个公用属性显露出来,标签的内容由OnCheck事件句柄设置的另一个公用属性决定。
⑵ 定义攻击性词语的XML文件的名字。
⑶ 另外,我们还定义了一个由复合控件调用的CheckText子过程。
下一篇:ASP.NET应用中缓存Oracle数据(1) >>
相关文章:
- · 在ASP.NET 2.0中实现本地化(2)
- · WebMatrix开发ASP.NET试用手记(1)
- · WebMatrix开发ASP.NET试用手记(2)
- · WebMatrix开发ASP.NET试用手记(3)
- · 表单填写时用回车代替TAB的实现方式
- · ASP使用MYSQL数据库全攻略
- · 友情连接浏览器
- · 方便购买的电子商务站点设计技巧
- · 使用ActiveX控件开发网页常见的问题
- · 基于ACCESS数据库的纯asp论坛制作心得
- · 关于打印页面的一些经验
- · vbscript和javascript互相调用
- · 使用索引服务器 - 增加属性
- · 使用索引服务器 - 创建ASP页面
- · 使用索引服务器- 使用索引服务器的对象
- · 已调试好的asp程序在VB中转换为组件的技巧
- · ASP.NET HTTP运行时组成详解(1)
- · 实现类似Windows资源管理器的DataGrid(2)
- · ASP.NET HTTP运行时组成详解(2)
- · ASP.NET HTTP运行时组成详解(3)
- · ASP.NET HTTP运行时组成详解(4)
- · ASP.NET HTTP运行时组成详解(5)
- · ASP.NET中使用TreeView控件(1)
- · ASP.NET中使用TreeView控件(3)
- · ASP.NET中使用TreeView控件(2)
- · ASP.NET中使用TreeView控件(4)
- · ASP.NET服务器控件发送脚本(1)
- · ASP.NET服务器控件发送脚本(2)
- · ASP.NET服务器控件发送脚本(3)
- · ASP.NET服务器控件发送脚本(4)
- · ASP.NET+XML打造网络硬盘(1)
- · ASP.NET+XML打造网络硬盘 (3)
- · ASP导出Excel数据的四种方法(2)
- · ASP.NET应用程序设计的10大技巧(1)
- · ASP.NET应用程序设计的10大技巧(2)
- · ASP.NET应用程序设计的10大技巧(4)
- · ASP.NET结合COM组件发送Email
- · ASP.NET中Cookie编程简明参考
