zoukankan      html  css  js  c++  java
  • UserControl调用Umbraco的Data Types

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

    1.  需求:

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

    2.  尝试方法

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

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

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

    Xslt中的代码,如下:

    <!DOCTYPE xsl:stylesheet[
      <!ENTITYnbsp "&#x00A0;">
    ]>
    <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的值然后DropDownListitem进行添加进行绑定。

    Cs代码如下:

    usingumbraco.cms.businesslogic.datatype;

    varvalues = PreValues.GetPreValues(1159);

    //1159dataTypeid

            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的值就可以对通过umbracoDataType进行维护了,而不需要对网站代码进行需改。

  • 相关阅读:
    转载:揪出MySQL磁盘消耗迅猛的真凶
    转载:MySQL看这一篇就够了
    转载:MySQL:亲测备份策略实例(线上真实备份案例)
    Consul集群搭建 2Server+ 3Client
    consul配置参数大全、详解、总结
    基于consul高可用
    MySQL MGR+ Consul之数据库高可用方案
    MySQL Group Replication-MGR集群
    MySQL binlog_format中sbr 和rbr(Statement-Based and Row-Based Replication)的优缺点
    MySQL binlog2sql-闪回数据
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3233640.html
Copyright © 2011-2022 走看看