[原文]: http://getben.com/archive/2007/01/16/introduction-to-chameleon-action-controls.aspx

这篇文章属于我的文章系列Chameleon介绍...

动作控件定义了单个功能或行为,由其它Chameleon控件在配置的事件发生时调用。

动作控件通常使用于当Chameleon表单控件处理完成了一个事件,比如博客联系表单提交成功。例如:

<CSBlog:ContactForm runat="server" SubjectTextBoxId="Subject" NameTextBoxId="Name"
 EmailTextBoxId="Email" MessageTextBoxId="Body" SubmitButtonId="Submit">
   <SuccessActions>
      <CSControl:SetVisibilityAction runat="server" ControlIdsToShow="SuccessMessage" />
   </SuccessActions>
   <FormTemplate>

<div><CSControl:FormLabel LabelForId="Name" runat="server"
 ResourceName="Weblog_ContactForm_Name" /></div>
      <div><asp:TextBox id="Name" runat="server" /></div>

<div><CSControl:FormLabel LabelForId="Email" runat="server"
 ResourceName="Weblog_ContactForm_Email" /></div>
      <div><asp:TextBox id="Email" runat="server" /></div>

<div><CSControl:FormLabel LabelForId="Subject" runat="server"
 ResourceName="Weblog_ContactForm_Subject" /></div>
      <div><asp:TextBox id="Subject" runat="server" /></div>

<div><CSControl:FormLabel LabelForId="Body" runat="server"
 ResourceName="Weblog_ContactForm_Body" /></div>
      <div><asp:TextBox id="Body" runat="server" TextMode="MultiLine" /></div>

<div>
      <asp:Button id="Submit" runat="server" Text="Send" />
      <CSControl:ResourceControl runat="Server" id="SuccessMessage"
 ResourceName="Weblog_ContactForm_Sent" Visible="false" />
      </div>

</FormTemplate>
</CSBlog:ContactForm>

使用<CSControl:SetVisibilityAction />动作控件来声明,当<CSBlog:ContactForm />提交成功后,以"SuccessMessage"为ID的控件的Visibility属性应该设为真。

Community Server 2007里定义了很多动作控件,也可以轻松地定义新的动作控件(所有动作控件继承于ActionBase)。已有的动作控件包括:

  1. ExecuteScriptAction (<CSControl:ExecuteScriptAction />)
    ExecuteScriptAction会运行由Script属性指定的JavaScript脚本。
  2. GoToCurrentContentAction (<CSControl:GoToCurrentContentAction />)
    如果在当前上下文中存在内容对象的话,GoToCurrentContentAction会导航到当前内容对象。
  3. GoToCurrentPostAction (<CSControl:GoToCurrentPostAction />)
    如果当前上下文中存在贴子的话,GoToCurrentPostAction会导航到当前的贴子(Post)。
  4. GoToModifiedUrlAction (<CSControl:GoToModifiedUrlAction />)
    GoToModifiedUrlAction会应用指定的查询字符串(QueryStringModification属性指定)及目标更改(TargetLocaitonModification属性指定)到当前URL,并导航到更改后的结果URL。
  5. GoToReferralUrlAction (<CSControl:GoToReferralUrlAction />)
    如果查询字符串里声明了引用URL的话,GoToReferralUrlAction会导航到该URL。
  6. GoToSiteUrlAction (<CSControl:GoToSiteUrlAction />)
    GoToSiteUrlAction会导航到UrlName指定的SiteUrls.config文件里定义的Url。
  7. SetVisibilityAction (<CSControl:SetVisibilityAction />)
    SetVisibilityAction会设置ControlIdsToShow属性指定的控件为可见(Visible=ture)并且设置ControlIdsToHide属性指定的控件为不可见(Visible=false)。两个属性里的列表都用逗号分隔。
  8. CustomAction (<CSControl:CustomAction />)
    CustomAction通过提供CustomEvent事件,添加了基于代码的动作。这个事件可以用来实现内联代码。CustomEvent为事件处理器传入了执行此事件的父控件的引用,以及父控件的参数(与具体的控件有关)。例如:

    <script runat="server" language="C#">
    protected void MyCustomEventHandler(System.Web.UI.Control sender, object parameter)
    {
       // custom code here
    }
    </script>

    <CSControl:CustomAction runat="server" CustomEvent="MyCustomEventHandler" />

    会执行定义在页面上的MyCustomEventHandler方法里的自定义代码。

  9. Actions (<CSControl:Actions />)
    Actions用于执行一系列的子动作。上面示例中<CSBlog:ContactForm />的内置属性"SuccessActions"就是一个Actions控件。

    注意,Actions里可以使用多于一个运作控件。动作以它们定义的顺序执行,因此,下面的例子:

    <SuccessActions>
       <CSControl:GoToReferralUrlAction runat="server" />
       <CSControl:SetVisibilityAction runat="server" ControlIdsToShow="SuccessMessage" />
    </SuccessActions>

    会首先试图导航到查询字符串里指定的引用URL。如果没有定义引用URL,"SuccessMessage"控件会显示。

动作控件提供了一种简单的机制允许界面开发者自定义表单的行为。界面开发者现在可以根据他们界面的需要而实现自定义的导航和通知行为。

如果你有关于Chameleon表单控件的问题(或任何有关Chameleon的问题),请通过我的联系表单或添加评论告诉我。我会在这一系列的最后一篇文章里回答它们。

这个系列的下一篇文章里,我会讨论辅助控件。

[翻译]Chameleon介绍(6) : 动作控件相关推荐

  1. [翻译]Chameleon介绍(3) : 列表控件

    [原文]http://getben.com/archive/2007/01/11/introduction-to-chameleon-list-base-controls.aspx 这篇文章属于我的文 ...

  2. Android获取景点的信息,景点介绍(ListView控件应用)

    1. 案例概述 此案例主要是对ListView列表控件的使用.当应用中包含多项数据,每项数据结构相同,只是内容不同时,可通过列表显示.对于列表中的内容,可以是显示字符串的TextView,也可以是结构 ...

  3. .NET(C#、VB)移动开发——Smobiler平台控件介绍:TextTabBar控件

    2019独角兽企业重金招聘Python工程师标准>>> TextTabBar控件 样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的"Smobiler Comp ...

  4. 介绍ASP.NET控件ID

    ASP.NET控件ID 经常见到有人说在ASP.NET中不要使用动态控件,我想主要的原因在于使用动态控件会带来一些问题,在做项目的过程中,我将由动态加载控件引发的总是作了一个小小的总结. 1 .在使用 ...

  5. 64位 pb12 win7 数据源_PB12新特性及介绍PB资源控件下载

    PB12新特征及介绍 PowerBuilder 12:Fresh from the Labs PowerScript Language Enhancements for .NET Define an ...

  6. 龙博方案网Big Faceless Java图形展现控件详细介绍及下载

    2019独角兽企业重金招聘Python工程师标准>>> Graph Library 是用于以Java创建图形和图表的Java类库.它使用全三维模式,可在 PNG.Flash.PDF或 ...

  7. C# Winform 常用控件介绍

    1.窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2) WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三种: N ...

  8. winform常用控件介绍

    winform常用控件介绍 1.窗体 1 2.Label 控件 3 3.TextBox 控件 4 4.RichTextBox控件 5 5.NumericUpDown 控件 7 6.Button 控件 ...

  9. Silverlight 4新控件PivotViewer介绍

    早在Silverlight 4正式版发布之前,微软发布PivotViewer控件的演示版本,其处理以及展示大批量数据的功能吸引不少开发人员和终端客户,今天微软发布了PivotViewer控件正式版本, ...

  10. iOS开发UI篇—UIScrollView控件介绍

    iOS开发UI篇-UIScrollView控件介绍 一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ...

最新文章

  1. mysql+3.11.1_【MySql】1.3 使用正则表达式搜索
  2. App_Offline.htm 一个静态页面实现整站维护时统一页面
  3. Springlake-01 介绍功能安装
  4. NLP之BoWNLTK:自然语言处理中常用的技术——词袋法Bow、NLTK库
  5. Linux内核中的进程组及会话
  6. java中获取文件总行数_关于java:如何以有效的方式获取文件中的行数?
  7. conductor任务域
  8. [ubuntu] tmux 窗口不是全屏
  9. JavaScript数据类型之Undefined、Null、Boolean
  10. Android 8(1),腾讯字节爱奇艺网易华为实习面试汇总
  11. “猜猜红桃A在哪里”——android小游戏(入门学习必备)
  12. Linux下安装搜狗拼音输入法(Ubuntu18.04.2 LTS)
  13. 企业微信邮箱登录入口在哪里?
  14. RestAssured接口自动化框架学习
  15. 滴滴6月或发布造车计划;头部App上线一键关闭 “个性化推荐 ”​;下载捆绑,“高速下载”竟为元凶 | EA周报...
  16. HDU6438(优先队列+思维)
  17. Mybatis-Plus教程
  18. 软件测试——2022经济寒冬之下究竟还有没有出路?
  19. 学会重构与对比 ——码农鼻祖天才香农
  20. 几款浏览器兼容性测试工具

热门文章

  1. Rust: trait 孤儿规则
  2. 阿里云原生专家复礼:多活容灾建设思路与经验分享
  3. 阿里云郑晓:浅谈GPU虚拟化技术(第四章)
  4. 【导航仿真】基于matlab GUI PSINS导航仿真【含Matlab源码 1496期】
  5. 【数字信号调制】基于matlab GUI AM+FM+DSB+SSB调制解调【含Matlab源码 1212期】
  6. 【MIMO通信】基于matlab MIMO_OFDM通信系统仿真【含Matlab源码 314期】
  7. 【基础教程】基于matlab GUI界面介绍与搭建【含Matlab源码 189期】
  8. php 数据结构set,ES6的Set数据结构是什么
  9. python中单词个数_python 统计单词个数
  10. 文本框样式 html,HTML文本框样式大全