UserControl调用Umbraco的Data Types
本篇文章介绍的是基于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&c2=">全部</a>
</li>
<li>|</li>
<xsl:for-each select="$categoryList">
<li>
<a href="/aboutus/medianews.aspx?c1=media&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的更多相关文章
- [Umbraco] Data Types介绍
Data Types是在建立document type时需要用到的,系统自带了很多用于开发的类型,如常用的下拉列表dropdown, textbox, radiobox, checkbox以及上传,h ...
- Entity Framework Code First (七)空间数据类型 Spatial Data Types
声明:本文针对 EF5+, Visual Studio 2012+ 空间数据类型(Spatial Data Types)是在 EF5 中引入的,空间数据类型表现有两种: Geography (地理学上 ...
- 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 ...
- 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 ...
- "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 ...
- ExtJS笔记 Ext.data.Types
This is a static class containing the system-supplied data types which may be given to a Field. Type ...
- 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 ...
- Delphi Data Types
http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Data_Types Integer Data Types Type Descriptio ...
- 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 ...
随机推荐
- iOS代码规范文档
文件命名规范: 1. 项目统一使用类前缀ZY. 2. 分类命名+后面统一使用ZYExtension,例:NSDictionary+ZYExtension.h,常用分类定义在内部并写好文档注释.如果功能 ...
- CSS3 @keyframes 语法
http://www.w3chtml.com/css3/rules/@keyframes.html <!DOCTYPE html><html lang="zh-cn&quo ...
- Python join()方法
描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str.join(sequence) 参数 sequence -- 要连接的 ...
- client denied by server configuration
http://blog.csdn.net/fdipzone/article/details/40512229
- 【HDU 3709】 Balanced Number (数位DP)
Balanced Number Problem Description A balanced number is a non-negative integer that can be balanced ...
- Android 4.0设计规范 优先导读 十大改变
在拜读和翻译了 Android design 设计指导后,对比 Android 4.0 与 Android2.3 及之前版本的 app 设计指导,总结了 Android 4.0 设计的 10 大改变: ...
- C#功能扩张方式
有时候,为了完成一些window的一些操作,需要引入一些dll进行操作 1) 引入系统api进行操作,形如[DllImport("urlmon.dll", CharSet = C ...
- 3.android下Makefile编写规范
随着移动互联网的发展,移动开发也越来越吃香了,目前最火的莫过于android,android是什么就不用说了,android自从开源以来,就受到很多人的追捧.当然,一部人追捧它是因为它是Google开 ...
- how to uninstall devkit
http://www.uninstallapp.com/article/How-to-uninstall-Perl-Dev-Kit-PDK-8.0.1.289861.html PerfectUnins ...
- 【Bower】
Bower Bower:客户端库管理工具 Day 1: Bower —— 管理你的客户端依赖关系 bower解决js的依赖管理