继续从上面的Data Types的自定义控件说起。前面用到了自定义控件的数据绑定,虽然这使得我们可以调用外部数据了,但这似乎还比较死板,如果再调用其他数据,还得再创建一个控件,那样的话就会出现类似的功能性控件,复用率不高,而且维护起来也不方便,其实有更好的方法实现,

看下面的代码

.ascx file:

<%@ Control Language="C#" AutoEventWireup="true"     CodeBehind="Demo.ascx.cs"     Inherits="UmbracoCreateCustomDatatypeWithWrapper.Demo" %>

<asp:DropDownList ID="control" runat="server"> </asp:DropDownList>

.ascx.cs file (code behind)

 using System;
using System.Data;
using System.Web;
using System.Web.UI.WebControls;
using umbraco.cms.businesslogic.datatype;
using umbraco.editorControls.userControlGrapper;
using Microsoft.ApplicationBlocks.Data; namespace UmbracoCreateCustomDatatypeWithWrapper
{
public class Demo : UserControl, IUsercontrolDataEditor
{
[DataEditorSetting("Connection string")]
public string ConnectionString { get; set; } [DataEditorSetting("Select statement")]
public string SelectStatement { get; set; } [DataEditorSetting("Text column")]
public string TextColumn { get; set; } [DataEditorSetting("Value column")]
public string ValueColumn { get; set; } public string umbracoValue; protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
//onsave
value = control.SelectedValue;
}
else
{
control.DataSource = SqlHelper.ExecuteReader(
ConnectionString,
CommandType.Text,
SelectStatement);
control.DataTextField = TextColumn;
control.DataValueField = ValueColumn;
control.DataBind();
control.Items.Insert(, new ListItem(String.Empty, String.Empty)); control.SelectedIndex = ;
if (value != null)
control.SelectedValue = value.ToString();
}
} public object value
{
get
{
return umbracoValue;
}
set
{
umbracoValue = value.ToString();
}
}
}
}

如下使用

显示效果

这样是不是更好一点呢。

[Umbraco] Data Type的扩展编程的更多相关文章

  1. [Umbraco] Data Type之Render control

    继续探讨Data Type.如果你创建过Data Type,你就会知道创建一个新的Data Type都需要指定一个Render control,这有点类似开始C#时用到的继承. 那么如何创建我们自己的 ...

  2. [Umbraco] Data Types介绍

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

  3. 1月21日 Reference Data Type 数据类型,算法基础说明,二分搜索算法。(课程内容)

    Reference Datat Types 引用参考数据类型 -> 组合数据类型 Array, Hash和程序员自定义的复合资料类型 组合数据的修改: 组合数据类型的变量,不是直接存值,而是存一 ...

  4. C++数据类型(data type)介绍

    在编写程序时,数据类型(data type)定义了使用存储空间的(内存)的方式. 程序员通过定义数据类型(data type),告诉特定存储空间这里要存储的数据类型是什么,以及你即将操作他的方式.(注 ...

  5. PHP 笔记一(systax/variables/echo/print/Data Type)

    PHP stands for "Hypertext Preprocessor" ,it is a server scripting language. What Can PHP D ...

  6. JAVA 1.2(原生数据类型 Primitive Data Type)

    1. Java的数据类型分为2类 >> 原生数据类型(primitive data type) >> 引用数据类型(reference data type) 3. 常量和变量 ...

  7. salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解

    建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema Builder查看表结构以及多表之间的关联关系,可以登录后点击setup在左侧搜索框输入schema ...

  8. The conversion of a varchar data type to a datetime data type resulted in an out-of-range value

    刚刚有在程序中,传递一个空值至MS SQL Server数据库,这个值的数据类型为DATETIME执行时,它却发生了如标题提示的异常:The conversion of a varchar data ...

  9. XML Data Type Methods(一)

    XML Data Type Methods(一) /*XML Data Type Methods: 1.The query('XQuery') method retrieves(vt.检索,重新得到) ...

随机推荐

  1. js,javascript,打印对象,object

    function writeObj(obj){ var description = ""; for(var i in obj){ var property=obj[i]; desc ...

  2. ON_UPDATE_COMMAND_UI和ON_COMMAND有什么区别?

    区别如下: UPDATE_COMMAND_UI表示处理菜单对应的用户界面显示状态. COMMAND表示处理该菜单对应的功能. 传统SDK程序要改变选单命令项状态,可以呼叫EnableMenuItem或 ...

  3. 基于脚本的nodemanager管理器

    Step 6: Configure Node Manager on the Managed Servers虚拟机环境: 管理服务器IP:192.168.227.10  AdminServer 受管服务 ...

  4. centos6.4 安装wireless驱动

    安装完centos6.4之后,目测只有有线的驱动,没有无线驱动. 一.检测网卡 [root@centos ~]# lspci | grep Net :.11b/g LP-PHY (rev ) :) 第 ...

  5. C#-vs2012学习笔记-惊奇于vs的强大和便利

    网站常用功能自动完成,包括网页和数据库.

  6. C++二级指针第一种内存模型(指针数组)

    二级指针第一种内存模型(指针数组) 指针的输入特性:在主调函数里面分配内存,在被调用函数里面使用指针的输出特性:在被调用函数里面分配内存,主要是把运算结果甩出来 指针数组 在C语言和C++语言中,数组 ...

  7. 二分搜素——(lower_bound and upper_bound)

    因为每个人二分的风格不同,所以在学习二分的时候总是被他们的风格搞晕.有的人二分风格是左闭右开也就是[L,R),有的人是左开右闭的(L,R]. 二分的最基本条件是,二分的序列需要有单调性. 下面介绍的时 ...

  8. Scala_函数式编程基础

    函数式编程基础 函数定义和高阶函数 函数字面量 字面量包括整数字面量.浮点数字面量.布尔型字面量.字符字面 量.字符串字面量.符号字面量.函数字面量和元组字面量. scala> val i = ...

  9. nodejs 负载均衡

    教程:http://taobaofed.org/blog/2015/11/03/nodejs-cluster/ 纠正:net.createServerHandle(); 记录:http://www.j ...

  10. [leet code 4] Median of Two Sorted Arrays

    1 题目 There are two sorted arrays A and B of size m and n respectively. Find the median of the two so ...