young.han

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Data Types是在建立document type时需要用到的,系统自带了很多用于开发的类型,如常用的下拉列表dropdown, textbox, radiobox, checkbox以及上传,html编辑器等等。但是这些往往还并不能满足我们的需要。

 

例如dropdown来源于某一数据库中的表时,显然系统不能帮助我们解决这些,那怎么办呢?umbraco不会让我们办法的,在创建一个新的Data Type时,Render control选择如图

这样就可以开发自己的控件了

在vs里创建一个web应用程序,新建web用户控件

 

在ascx里放一个dropdown控件,并命名为ddlUser

 

cs文件里我们需要引用一下

using umbraco.editorControls.userControlGrapper;

 

继承IUsercontrolDataEditor接口并实现其属性,控件的cs代码如下

 1 public class UserList : System.Web.UI.UserControl, IUsercontrolDataEditor 
 2 {
 3     protected void Page_Load(object sender, EventArgs e)
 4     {
 5         if (!IsPostBack) {
 6             ddlUser.DataSource = new DataTable();//此处可以绑定自己的数据
 7             ddlUser.DataTextField = "id";
 8             ddlUser.DataValueField = "name";
 9             ddlUser.DataBind();
10 
11             ddlUser.Items.Insert(0, new ListItem("choose...", ""));
12 
13             if (!string.IsNullOrEmpty(_umbracoValue)) {
14                 ddlUser.SelectedValue = _umbracoValue;
15             }
16         }
17     }
18 
19     private string _umbracoValue;
20     public object value
21     {
22         get
23         {
24             _umbracoValue = ddlUser.SelectedValue;
25             return _umbracoValue;
26         }
27         set
28         {
29             _umbracoValue = Convert.ToString(value, CultureInfo.CurrentCulture);
30         }
31     }
32 }
View Code

 

编译发布,将.ascx文件拷贝到usercontrols目录下,.dll文件拷贝到bin目录下。实际看下效果

posted on 2013-11-11 11:57  young.han  阅读(425)  评论(0编辑  收藏  举报