继续从上面的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();
}
}
}
}

如下使用

显示效果

这样是不是更好一点呢。

最新文章

  1. C#预处理器指令 ,你造吗??? (●&#39;◡&#39;●)
  2. OS X: Messages Agent wants to use the &quot;login&quot; keychain
  3. Mac搭建本地svn服务器,并用Cornerstone连接服务器
  4. 利用HTML5的Video进行视频截图并保存到本地
  5. 【LeetCode OJ】Word Ladder II
  6. objective-c 随便记记
  7. JavaScript构建(编绎)系统大比拼:Grunt vs. Gulp vs. NPM
  8. 【转载】Java 升级到jdk7后DbVisualizer 6 启动空指针的处理方案
  9. RabbitMQ安装简单过程
  10. 11 java 反射机制
  11. tokyocabinet安装日志(持续更新)
  12. HTML5新特性之CSS+HTML5实例
  13. SharePoint 2013 创建一个搜索中心和搜索设置
  14. poj1269计算几何直线和直线的关系
  15. asp.net C# 实现阿里大鱼和云片网短信接口类
  16. TensorFlow实现XOR
  17. ipa的plist文件查看
  18. [Bayes] Understanding Bayes: Updating priors via the likelihood
  19. jenkins1
  20. java 反射创建实例与new创建实例的区别

热门文章

  1. 微信小程序的新的
  2. vue中moudles的作用及使用方法
  3. Topcoder-SRM-#712-Div2
  4. 协程之gevent
  5. 手机开发-Android
  6. (多重背包)hdu--2191--悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
  7. (广搜)Fire Game -- FZU -- 2150
  8. 你可能不知道的Shell
  9. Lib作为“静态库”与“动态库”中的区别
  10. CSS 基础 例子 盒子模型及外边距塌陷