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 ...
随机推荐
- Things About 'extern'
Note: All Learned From Here C和Objective-C的function前面都有个隐含的extern,对于function来说,有没有extern都无所谓,但变量不一样. ...
- Python3实现连接SQLite数据库的方法
本文实例讲述了Python3实现连接SQLite数据库的方法,对于Python的学习有不错的参考借鉴价值.分享给大家供大家参考之用.具体方法如下: 实例代码如下: ? 1 2 3 4 5 6 7 8 ...
- delphi xe5 android 开发数据访问server端(一)
第一篇我们破解并安装了xe5 第二篇我们搭建了开发环境 接下来我们开发一个三层的android程序 建立一个webservices stand-alone vcl application 作为手机访 ...
- Waterfall———瀑布流布局插件, 类似于 Pinterest、花瓣、发现啦。
瀑布流布局插件, 类似于 Pinterest.花瓣.发现啦. En 中文 文档 下载 下载waterfall插件最新版本. 使用 html: <div id="container&qu ...
- Java 声明和访问控制(一) 数组的声明 private可以修饰类吗
数组的声明: int []a[] = new int[4][];//是正确的 int[] array = new int[2]{1,2};//是错误的 数组的长度是不可改变的,不能通过任何方式改变大小 ...
- UNIX网络编程——套接字选项
http://www.educity.cn/linux/1241288.html 有时候我们需要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要学习套接字选项. int getsockopt( ...
- Android Training精要(一)ActionBar上级菜单导航图标
Navigation Up(ActionBar中的上级菜单导航图标) 在android 4.0中,我们需要自己维护activity之间的父子关系. 导航图标ID为android.R.id.home @ ...
- PEP Index > PEP 339 -- Design of the CPython Compiler 译文
http://www.python.org/dev/peps/pep-0339/ PEP: 339 标题: CPython的编译器设计 版本: 425fc5598ee8 最后修改: 2011-01-1 ...
- 外部exe窗体嵌入winform
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...
- response常见应用、response细节、输出随机图片、定时刷新网页
response常见应用 向客户端输出中文数据 分别以OutputStream和PrintWriter输出 多学一招:使用HTML语言里面的<meta>标签来控制浏览器行为 思考:用O ...