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
  • 相关阅读:
    [火柴排队]
    [NOI2001食物链]
    [黑科技]
    [SDOI2009HH的项链]
    [GXOI/GZOI2019旅行者]
    [Nim游戏]
    Log4Net
    C#创建windows服务并定时执行
    MySQL实现类似Oracle的序列
    DevExpress XtraTreeList的复选框 禁用
  • 原文地址:https://www.cnblogs.com/younghan/p/3417654.html
Copyright © 2011-2022 走看看