中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > Asp > 综合文章
在葉面中動態的添加控件
作者:未知 时间:2004-10-26 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无
在實際的開發過程中,經常需要根据實際需要動態的加載一些服務器控件或用戶控件,一般又分為靜態和動態加載兩種.下面主要是講如何動態加載控件,在葉面中動態加載控件經常用PlaceHolder控件作為一個容器來裝載這些動態加載的控件.這個例子是當點”BtnAddControl”來添加一個新控件
Sub BtnAddControl_Click(Sender As object,e As eventargs)
      Dim txtBox As textbox = New Textbox         
      '先清除placeholder中的所有控制項再將生成的textbox控件加到placeholder控件中
      PlaceHolder1.Controls.Clear()
      PlaceHolder1.Controls.Add(txtBox) '這樣基本上就已經有了一個textbox控件了,當點“BtnAddControl“時就可以看到有個textbox!
      '還可以定義加載的TEXTBOX的各种屬性(注意要先添加控件,再設置它的屬性)
      txtBox.ID=“Mytextbox“
      txtBox.BackColor=System.Drawing.Color.LightGreen
      txtBox.text=“This is a textbox!“
      ViewState(“txtBoxControl“)=True
End Sub
這樣就會在點按鈕的時候動態加載一個TEXTBOX控件,但是這樣會有一個問題:就是在刷新葉面的時候這個TEXTBOX又會不見.這是因為動態加載的控件不會在葉面上自動保存他的VIEWSTATE狀態,要想不出項這种問題,就必須在PAGE_LOAD()事件中實現,具体如下:
 Sub Page_load(Sender As object,e As Eventargs)
       '判斷ViewState中是否存在先前生成的控件的ViewState,存在則重新生成控件並自動加載它先前的ViewState狀態
       If ViewState(”txtBoxControl”) <> Nothing Then
          Dim txtBox As textbox=New textbox
          PlaceHolder1.Controls.Add(txtBox)
          txtBox.ID=”MytextBox”
       End If
End Sub 
動態加載用戶控件是一樣的方法(PlaceHolder1.Controls.Add(”Header.ascx”)
------------------------------------------------------------------------
第一次寫文章,有點亂,還望指正!     
      
     
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有