ASP.net 自制TableTree实现

 

 

using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

namespace UserControl.UI
{
 /// <summary>
 /// TreesTable 的摘要说明。
 /// </summary>
 public class TreesTable
 {
  public interface iTrees
  {
   void AddNode(Trees node);
   Control NodeItem{get;}
   Control Title{get;set;}
  }
      
  public class Trees:Control,iTrees
  {
   private Control m_TreeNodeCollect;
   private Control m_TitleControl;
   private string m_TextTitle;
   private HtmlTable m_HtmlTabe;
   private string m_script;
   private const string SCRIPT="<script language='javascript'>{0}</script>";
   
   public Trees()
   {
    m_TreeNodeCollect = new Control();
    m_HtmlTabe = new HtmlTable();
    //Java script
    m_script = string.Format(SCRIPT,
     "function ShowObject(showObjName){var showObj1=showObjName; if(showObj1.style.display=='none'){showObj1.style.display='block';}else{showObj1.style.display='none';}}");
   }
   
   public Trees(string title)
   {
    m_TreeNodeCollect = new Control();
    m_HtmlTabe = new HtmlTable();
    //Java script
    m_script = string.Format(SCRIPT,
     "function ShowObject(showObjName){var showObj1=showObjName; if(showObj1.style.display=='none'){showObj1.style.display='block';}else{showObj1.style.display='none';}}");
    TextTitle = title;
   }

   public Trees(Control title)
   {
    m_TreeNodeCollect = new Control();
    m_HtmlTabe = new HtmlTable();
    //Java script
    m_script = string.Format(SCRIPT,
     "function ShowObject(showObjName){var showObj1=showObjName; if(showObj1.style.display=='none'){showObj1.style.display='block';}else{showObj1.style.display='none';}}");
    Title = title;
   }
   
   private Control getTextControl(string string1)
   {
    Literal li = new Literal();
    li.Text = string1 + "";
    return li;
   }
   
   public string TextTitle
   {
    get { return m_TextTitle; }
    set
    {
     m_TextTitle = value;
     Title = getTextControl(value);
    }
   }
   
   protected override void CreateChildControls()
   {
    base.CreateChildControls();
    Page.RegisterStartupScript("ShowObject", m_script);
    Controls.Add(m_HtmlTabe);
    m_HtmlTabe.Rows.Add(getHtmlTable(Title));
    if(NodeItem.Controls.Count>0)
    {
     m_HtmlTabe.Rows.Add(getHtmlTable(NodeItem));
     m_HtmlTabe.Rows[0].Attributes["onclick"] =
      string.Format("ShowObject(document.getElementById('{0}'))", m_HtmlTabe.Rows[1].ClientID);
    }
   }

   private HtmlTableRow getHtmlTable(Control control)
   {
    HtmlTableRow tr;
    HtmlTableCell td;
    tr = new HtmlTableRow();
    td = new HtmlTableCell();
    td.Controls.Add(control);
    tr.Cells.Add(td);
    tr.ID = tr.ClientID;
    return tr;
   }
   
   #region iTrees 成员

   public void AddNode(Trees node)
   {
    NodeItem.Controls.Add(node);
   }

   public Control NodeItem
   {
    get
    {
     return m_TreeNodeCollect;
    }
   }

   public Control Title
   {
    get { return m_TitleControl; }
    set { m_TitleControl = value; }
   }

   #endregion
  }

 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值