umbraco学习8:macro参数

来源:互联网 发布:vb中asc是什么意思 编辑:程序博客网 时间:2024/05/17 02:50

macro的参数主要是针对.net macros而言,结合参数我们可以创建更加灵活的.net macros,笔者将参照umbraco官网上提供一个介绍macro参数的例子,来简单介绍下macro参数的使用。

首先创建一个名为DemoParameters的用户控件,控件包括两个属性:DefaultValue和DefaultPageId,DemoParametersControl.aspx的代码如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DemoParametersControl.ascx.cs" Inherits="starterKit.DemoParametersControl" %><div id="demoParametersContainer">    <div id="demoParametersHeader">        <h1>macro参数使用举例</h1>    </div>    <div id="demoParametersContent">        <span>Default Value: </span>        <asp:Literal ID="litDefaultValue" runat="server"></asp:Literal>        <span>Default Page ID: </span>        <asp:Literal ID="litDefaultPageId" runat="server"></asp:Literal>    </div></div>

后台代码DemoParametersControl.aspx.cs的代码如下:

  public partial class DemoParametersControl : System.Web.UI.UserControl    {        public string DefaultValue { get; set; }        public int DefaultPageId { get; set; }        protected void Page_Load(object sender, EventArgs e)        {            if (!string.IsNullOrEmpty(DefaultValue))            {                litDefaultValue.Text = DefaultValue;            }            else             {                litDefaultValue.Text = "No default value has been passed";            }            if (DefaultPageId > 0)            {                litDefaultPageId.Text = DefaultPageId.ToString();            }        }     }

因为之前已经设置了编译后事件,所以编译成功后,相关文件已经拷贝到站点的相应目录下。创建一个名为Demo Parameters的macro,并设置相应的.net用户控件,如下图所示:


保存后,可以在user control一行下看到Browse Properties按钮,点击该按钮,可以看到用户控件中定义的两个公共属性,对应于macro的的参数,如下图所示:


点击save后,重新加载macro,在Parameters选项卡下可以看到对应的参数已经添加成功。在该选项卡下可以添加和删除参数。可以看到每个参数对应三个属性,分别为别名(Alias)、名称(Name)和类型(Type)。其中别名的命名必须和用户控件中定义的公共属性的命名一致,名称和类型已经给出了默认值,但是可以做相应的改动。改动后如下图所示:


为了测试我们创建的macro,将新创建的macro插入到相应的Template中。选择Home Template,在相应的位置插入macro,选择工具栏中的Insert Macro,选择Demo Parameters后,将弹出设置参数的对话框,设置好相应的参数后,如下图所示:


点确认后,Home Template中插入Demo Parameters Macro的代码段如下:

<umbraco:Macro DefaultValue="测试Macro参数,这里输入的是默认值" DefaultPageId="1151" Alias="DemoParameters" runat="server"></umbraco:Macro>

我们还可以在代码中直接编辑相应的参数值,为了查看效果,打开home页面,如下图所示:


可以看到Demo Parameters Macro添加成功。除了我们设置的参数之外,参数的值也可以为节点的属性值或浏览器中URL中包含的属性值,例如我们把插入的macro的代码修改如下:

<umbraco:Macro DefaultValue="[#pageTitle]" DefaultPageId="[@pid]" Alias="DemoParameters" runat="server"></umbraco:Macro>
在浏览器地址后添加pid属性http://localhost/?pid=345,打开页面可以看到相应的参数值如下图所示:



关于.net macros,笔者就先介绍到这里,接下来几节笔者将介绍xslt macros。