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代码如下
public class UserList : System.Web.UI.UserControl, IUsercontrolDataEditor
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
ddlUser.DataSource = new DataTable();//此处可以绑定自己的数据
ddlUser.DataTextField = "id";
ddlUser.DataValueField = "name";
ddlUser.DataBind(); ddlUser.Items.Insert(, new ListItem("choose...", "")); if (!string.IsNullOrEmpty(_umbracoValue)) {
ddlUser.SelectedValue = _umbracoValue;
}
}
} private string _umbracoValue;
public object value
{
get
{
_umbracoValue = ddlUser.SelectedValue;
return _umbracoValue;
}
set
{
_umbracoValue = Convert.ToString(value, CultureInfo.CurrentCulture);
}
}
}
编译发布,将.ascx文件拷贝到usercontrols目录下,.dll文件拷贝到bin目录下。实际看下效果