快速业务通道

asp.net控件设计时支持(4)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19
ackgroundImage;       if (BackgroundImage.Trim().Length > 0)       {         styleAttributes["background-image"] = "url(" + BackgroundImage + ")";       }     }

好了再测试下,效果出来了.以上我认为是理解的重点,其他倒没什么,大家多修改即可理解.

二.多区域编辑

让我们来看下asp.net2.0中的Wizard控件的设计时,当点击 Step1和Step2时,你可以在区域中编辑不同的内容,我称之为多区域编辑

asp.net控件设计时支持(4)

设计时支持什么呢?多区域则比刚才编辑一个区域复杂,刚才的几乎不需要做什么事情,现在要做的多一些

需要注意的地方如下

1.控件区域点击事件 刚才已经试过了当点击 Step1和Step2时,你可以在区域中编辑不同的内容

此部分操作在ControlDesignerd的OnClick事件中完成

2.设置区域

区域包括两种

(1).点击的区域,即step1和step2 (DesignerRegion类)

(2).编辑的区域,即那个小边框 (EditableDesignerRegion类)

此部分操作在GetDesignTimeHtml方法中完成

3.模板数据操作

包括两部分操作

(1)选择一个区域后,编辑区域显示要获取的数据

(2)当编辑完区域里数据后,更新数据

4.寻找事件触发对象

万事具备,刚才的第一步中,Step1和Step2也是呈现也页面上的,此做为事件触发者,所以我们还需要对其做一下标记.

好了,重要部门都已经说清楚了.下面来看例子

先看效果吧,方便理解.这里大多的例子直接来自MSDN

asp.net控件设计时支持(4)

当点击View1和View2时,在蓝色区域会呈现不同模板的内容,还记得上篇模板控件的设计时支持吗?这里又有新方法了,而且更加简单.

下面为自定义控件代码,你只需要知道以下两点

1.提供了两个模板属性

2.Table提供了三个区域

  public class MyMultiRegionControl : CompositeControl
  {
    private ITemplate _view1;
    private ITemplate _view2;
    [PersistenceMode(PersistenceMode.InnerProperty), DefaultValue(null)]
    public virtual ITemplate View1
    {
      get { return _view1; }
      set { _view1 = value; }
    }
    [PersistenceMode(PersistenceMode.InnerProperty), DefaultValue(null)]
    public virtual ITemplate View2
    {
      get { return _view2; }
      set { _view2 = value; }
    }
    private int _currentView = 0;
    public int CurrentView
    {
      get { return _currentView; }
      set { _currentView = value; }
    }
    protected override void CreateChildControls()
    {
      Controls.Clear();
      Table t = new Table();
      t.CellSpacing = 1;
      t.BorderStyle = BorderStyle;
      t.Width = this.Width;
      t.Height = this.Height;
      TableRow tr = new TableRow();
      tr.HorizontalAlign = HorizontalAlign.Center;
      tr.BackColor = Color.LightBlue;
      TableCell tc = new TableCell();
      tc.Text = "View1";
      tc.Width = new Unit("50%");
      tr.Cells.Add(tc);
      tc = new TableCell();
      tc.Text = "View 2";
      tc.Width = new Unit("50%");
      tr.Cells.Add(tc);
      t.Rows.Add(tr);
      tr = new TableRow();
      tr.HorizontalAlign = HorizontalAlign.Center;
      tc = new TableCell();
      tc.ColumnSpan = 2;
 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号