zoukankan      html  css  js  c++  java
  • [Umbraco] Data Type之Render control

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

    那么如何创建我们自己的Render control呢?

    其实也很简单,将前一篇的demo略加改造就可以了

     1 public class ConnectionStringDataType : AbstractDataEditor
     2 {
     3  [DataEditorSetting("Connectionstring")]
     4  public String ConnectionString { get; set; }
     5 
     6  [DataEditorSetting("Select statement")]
     7  public string SelectStatement { get; set; }
     8 
     9  [DataEditorSetting("Text column")]
    10  public string TextColumn { get; set; }
    11 
    12  [DataEditorSetting("Value column")]
    13  public string ValueColumn { get; set; }
    14 
    15  private DropDownList control = new DropDownList();
    16 
    17  public ConnectionStringDataType()
    18  {
    19   base.RenderControl = control;
    20   control.Init += new EventHandler(control_Init);
    21   base.DataEditorControl.OnSave += new AbstractDataEditorControl.SaveEventHandler(DataEditorControl_OnSave);
    22  }
    23 
    24  void DataEditorControl_OnSave(EventArgs e)
    25  {
    26   base.Data.Value = control.SelectedValue;
    27  }
    28 
    29  void control_Init(object sender, EventArgs e)
    30  {
    31   control.DataSource = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(ConnectionString, CommandType.Text, SelectStatement);
    32   control.DataTextField = TextColumn;
    33   control.DataValueField = ValueColumn;
    34   control.DataBind();
    35   control.Items.Insert(0, new ListItem(String.Empty, String.Empty));   control.SelectedIndex = 0;
    36 
    37   if (base.Data.Value != null)
    38    control.SelectedValue = base.Data.Value.ToString();
    39  }
    40 
    41  public override Guid Id
    42  {
    43   get { return new Guid("FEDBD0B7-F318-4F1A-8D37-97C3B7DCB5D8"); }
    44  }
    45 
    46  public override string DataTypeName
    47  {
    48   get { return "Db driven dropdown"; }
    49  }
    50 }
    View Code
  • 相关阅读:
    对WM_NCHITTEST消息的了解+代码实例进行演示(消息产生消息,共24个枚举值)
    windows 下,用CreateWaitableTimer SetWaitableTimer 创建定时器(用轮询的办法保持高精度)
    YUI的模块化开发
    内存管理
    WCF从零学习之WCF概述(一)
    MVC编辑状态两个DropDownList联动
    HashMap的工作原理
    初探performance.timing API
    异步编程
    Nikola的5项依赖注入法则
  • 原文地址:https://www.cnblogs.com/younghan/p/3417654.html
Copyright © 2011-2022 走看看