本篇文章介绍的是基于Umbraco CMS技术搭建的网站所使用的相关技术。

1.  需求:

网站前台功能有个表单提交,表单控件用到下拉列表(dropdownlist),需求是在dropdownlist的数据来绑定umbraco的后台数据,而不是直接写在usercontrol的aspx页面中。好处在于如果有更改可以直接在umbraco的后台进行编辑而不更改网站代码。

2.  尝试方法

首先可以确定的是,我们必须在umbraco的Developer页签的Data Types中创建一个Type,类型为dropdownlist,然后录入相关数值,然后前台界面绑定此DataType,以后维护相关的DataType就OK了。

那么,创建完后前台aspx界面怎么进行对DataType绑定?一般情况下aspx页面可以引用filed字段或者是引用marco。

所以我想到的办法是,先创建一个xslt文件然后映射Marco文件,然后页面就可以引用Marco文件了。

Xslt中的代码,如下:

<!DOCTYPE xsl:stylesheet[
  <!ENTITYnbsp " ">
]>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxml="urn:schemas-microsoft-com:xslt"
  xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:tagsLib="urn:tagsLib" xmlns:BlogLibrary="urn:BlogLibrary"
  exclude-result-prefixes="msxmlumbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMathExslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets tagsLibBlogLibrary ">

<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:param name="currentPage"/>
  <xsl:variable name="categoryList" select="umbraco.library:GetPreValues('1282')//preValue"/>

<xsl:template match="/">

<!--<xsl:copy-ofselect="$currentPage" />-->
    <!--start writing XSLT -->
    <ul>
      <li>
        <a href="/aboutus/medianews.aspx?c1=media&amp;c2=">全部</a>
      </li>
      <li>|</li>
      <xsl:for-each select="$categoryList">
        <li>
          <a href="/aboutus/medianews.aspx?c1=media&amp;c2={@id}">
            <xsl:value-of select="." />
          </a>
        </li>
        <xsl:if test="position()!=last()">
          <li>|</li>
        </xsl:if>
      </xsl:for-each>
    </ul>
  </xsl:template>

</xsl:stylesheet>

Aspx页面代码如下:

<umbraco:Macro Alias="marcoAlias" runat="server"></umbraco:Macro>

可以值得肯定的是这个办法确实可以准确的将DataType的值显示出来,但是随之而来的问题是,表单需要提交,怎么获得xslt中的datatype的值呢?这让人很是头疼。

问题无法解决中,此方法待定。。。。。。

3.  正确方法

在尝试方案中,也不是所有步骤都是否定的,第一个步骤创建DataType这是正确的。那么问题还要回到aspx页面如何调用DataType类型?

在aspx页面仍然使用<aspx:DropDownList>,在aspx.cs页面获取DataType的值然后DropDownList的item进行添加进行绑定。

Cs代码如下:

usingumbraco.cms.businesslogic.datatype;

varvalues = PreValues.GetPreValues(1159);

//1159为dataType的id

foreach (DictionaryEntry de in values)

{

PreValue value =(PreValue)de.Value;

ListItem li = new ListItem();

li.Text = value.Value;

li.Value = value.Id.ToString();

tb_Title.Items.Add(li);

}

表单进行提交时tb_Title.SelectedItem.value。

这样就大功告成了,dropdownlist的值就可以对通过umbraco的DataType进行维护了,而不需要对网站代码进行需改。

UserControl调用Umbraco的Data Types的更多相关文章

  1. [Umbraco] Data Types介绍

    Data Types是在建立document type时需要用到的,系统自带了很多用于开发的类型,如常用的下拉列表dropdown, textbox, radiobox, checkbox以及上传,h ...

  2. Entity Framework Code First (七)空间数据类型 Spatial Data Types

    声明:本文针对 EF5+, Visual Studio 2012+ 空间数据类型(Spatial Data Types)是在 EF5 中引入的,空间数据类型表现有两种: Geography (地理学上 ...

  3. C and SQL data types for ODBC and CLI

    C and SQL data types for ODBC and CLI   This topic lists the C and SQL data types for ODBC and CLI a ...

  4. allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[System.DateTime]

    allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[S ...

  5. "SQL Server does not handle comparison of NText, Text, Xml, or Image data types."

    "SQL Server does not handle comparison of NText, Text, Xml, or Image data types." sql2000 ...

  6. ExtJS笔记 Ext.data.Types

    This is a static class containing the system-supplied data types which may be given to a Field. Type ...

  7. Core Java Volume I — 3.3. Data Types

    3.3. Data TypesJava is a strongly typed language(强类型语音). This means that every variable must have a ...

  8. Delphi Data Types

    http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Data_Types Integer Data Types Type Descriptio ...

  9. MongoDB - The mongo Shell, Data Types in the mongo Shell

    MongoDB BSON provides support for additional data types than JSON. Drivers provide native support fo ...

随机推荐

  1. RESTheart安装与设置

    作者:Maurizio Turatti, 最后在Feb 25, 2016时被 Andrea Di Cesare更新 安装与设置 1. 快速开始 Docker Vagrant Bare metal 2. ...

  2. Servlet的一些API使用介绍

    final String rootPath = getServletConfig().getServletContext().getRealPath("/");  获取项目运行的根 ...

  3. C++ 类族的设计

     - 类族的设计]    按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务:    (1)先建立一个Point(点)类,包含数据成员 ...

  4. Dom学习笔记-(一)

    一.概述 DOM(文档对象模型)是针对HTML和XML文档的一个API,其脱胎于DHTML. DOM可以将任意HTML和XML文档描绘成一个由多层节点构成的结构. 每一个文档包含一个根节点-文档节点, ...

  5. Sublime Text 3 若干问题解决办法

    1.在高分屏下中文文件夹名显示异常问题解决办法 新买了个2K的屏,有些中文文件夹名全部变成了“口口”. 在“preferences” - "设置-用户" 添加 "dpi_ ...

  6. Apache httpd.conf的翻译

    本人初学,15年暑假翻译了一些,前几天翻译完,有机器翻译,也有自己翻译的内容,不准确之处请指出. --------------------------------------------------- ...

  7. HTML5解决跨域问题

    HTML5解决跨域问题 由于浏览器的同源策略,网络连接的跨域访问是不被允许的,XHR对象不能直接与非同源的网站处理数据交互.而同源指的是什么呢?同源的范畴包括:规则(协议),主机号(域名.ip等),端 ...

  8. Stanford CoreNLP--Split Sentence

    分句功能参考 Stanford Tokenizer. 在edu.stanford.nlp.pipeline包中实现了一系列分词分句功能,其中SentenceAnnotator类实现了对文件分句功能. ...

  9. Gdi+实用入门

    大部分是参照其它资料,然后加以自己的理解,那是什么,总结.算不得什么教程.......汗,自己看着就行了..如果别人能看那就更好了. 首先下载GDI+文件包,一个动态链接库,使用GDI+就是调用那个动 ...

  10. 只看Delphi自带的WnAPI帮助似乎不够

    比如,MessageBox在Delphi自带帮助的参数说明中,对其第四个参数的MB_类型说明只有最常见的6种类型,这么多年搞得我天经地义的以为MessageBox就是这么简单.今天看了一位前辈写的老代 ...