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 }
编译发布,将.ascx文件拷贝到usercontrols目录下,.dll文件拷贝到bin目录下。实际看下效果