选择显示字体大小

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子过程。
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons