deerchao的blog

Be and aware who you are.

[翻译]Chameleon介绍(6) : 动作控件

[原文]: 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的问题),请通过我的联系表单或添加评论告诉我。我会在这一系列的最后一篇文章里回答它们。

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

posted on 2007-05-13 21:39 deerchao 阅读(116) 评论(1)  编辑 收藏 网摘 所属分类: Chameleon


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-05-18 02:22 编辑过
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接:


 
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

公告

给网络添加价值,就是让自己增加价值.

本博客所有内容,均为原创或对互联网已有资源的再加工,希望对你有用.在声明原作者的前提下,你可以任意使用,但本人对其正确性,使用的后果等不做任何担保,也不负任何责任.

正则表达式30分钟入门教程 v2.21 2007-8-3

I Want Spec#!

与我联系

搜索

 

常用链接

留言簿(66)

我管理的小组

我的标签

随笔档案(127)

文章分类(9)

文章档案(9)

新闻档案(9)

Links

积分与排名

最新评论

评论排行榜