本篇文章介绍的是基于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. Linux使用问答

    1.ubuntu 查看安装的软件包? 在终端输入 sudo dpkg -l http://vardesa.blog.hexun.com/58593247_d.html 其他:http://qiuye. ...

  2. POJ 3414 Pots bfs打印方案

    题目: http://poj.org/problem?id=3414 很好玩的一个题.关键是又16ms 1A了,没有debug的日子才是好日子.. #include <stdio.h> # ...

  3. 介绍.NET Core

    在connect (),我们宣布.NET 核心将能完全释放,作为开放源码软件.我也答应在.NET 核心跟更多的细节.在这篇文章,我将提供.NET 核心,我们如何去释放它,它涉及到.NET 框架,如何和 ...

  4. BZOJ2191Splite

    Description 给两个多边形,问否在平移旋转不翻转不重叠的情况下拼成一个凸多边形. Input 每组第一行一个数N表示第一个多边形的顶点数,下接N行按顺序(逆/顺时针)给出顶点坐标,再下一行给 ...

  5. Xcode7.01相对于底版本的变动小结

    1.在Xcode7中系统不再自动支持http请求,需要配置plist才能使用http: 2.appdelegate中的self.window不再支持直接往window上加view,必须先给window ...

  6. C++的类和对象

    #include <iostream> // 预处理命令 using namespace std; class Student{ // 声明一个类,类名为Student private : ...

  7. 四校训练 warm up 14

    A:Pythagoras's Revenge 代码: #include<cstdio> #define ll long long using namespace std; int main ...

  8. [wikioi]能量项链

    http://wikioi.com/problem/1154/ 这是石子归并的加强版,基本就是分治法的DP.但是有了个环,因为任何一个位置都可开始,所以就建立2*N的数组,然后对可能的区间遍历一次,就 ...

  9. Android中的Parcel机制 实现Bundle传递对象

    Android中的Parcel机制    实现了Bundle传递对象    使用Bundle传递对象,首先要将其序列化,但是,在Android中要使用这种传递对象的方式需要用到Android Parc ...

  10. Android Training精要(五)讀取Bitmap對象實際的尺寸和類型

    讀取Bitmap對象實際的尺寸和類型 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecode ...