在葉面中動態的添加控件

原创 2004年10月26日 21:24:00
在實際的開發過程中,經常需要根据實際需要動態的加載一些服務器控件或用戶控件,一般又分為靜態和動態加載兩種.下面主要是講如何動態加載控件,在葉面中動態加載控件經常用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 
動態加載用戶控件是一樣的方法(dim Mycontrol as control=page.loadcontrol(“header.ascx“)PlaceHolder1.Controls.Add(Mycontrol)
------------------------------------------------------------------------
第一次寫文章,有點亂,還望指正!     
      
     

VB.net窗体中调用项目内嵌HTML进行…

之前用VB.net做项目的时候一直想做一个漂亮点的图表展示效果,尝试了几个.net原生的插件后都宣告失败,倒不是因为不能用,要么是收费的(或者有版权水印)要么就是太复杂了,上手很麻烦,回想起来之前做w...
  • lpwmm
  • lpwmm
  • 2017年05月27日 10:33
  • 595

在Android代码中给布局添加控件

在有些app中,有些布局是不断变化的,如:有些新闻客户端上面的标题,我们可以根据自己的喜欢添加自己感兴趣的栏目。这时候,标题的布局就不能再布局文件中添加,添加以后再修改就比较困难。在代码中添加控件就比...
  • u013270383
  • u013270383
  • 2015年11月18日 14:14
  • 1093

在ViewPager中的Fragment添加控件及TextureView

在ViewPager中的Fragment添加控件及TextureView 首先做一个ViewPager,这是利用一个利用FragmentPagerAdapter制作的页面。 MainActivit...
  • qq_22193397
  • qq_22193397
  • 2015年10月10日 15:23
  • 1055

Android初学习 - 在Java code(布局容器)中动态添加控件

以动态添加Button控件为例,添加其他控件同样道理。 1、addView 添加控件到布局容器 2、removeView 在布局容器中删掉已有的控件 代码如下: p...
  • cnmilan
  • cnmilan
  • 2015年08月07日 15:44
  • 1469

c# 后台 给控件 加样式

 在asp.net中,有的时候要动态变换CSS,比如有的时候做个性化页面,可以这样做head>     link id="MyStyleSheet" rel="stylesheet" type="te...
  • franco_zhan
  • franco_zhan
  • 2009年09月26日 10:12
  • 7450

用代码在RelativeLayout里添加控件

1.需要用LayoutParams 使用android.view.ViewGroup.LayoutParams 的内嵌类 LayoutParams RelativeLayout,顾名思义,就是以“相对...
  • czcdms
  • czcdms
  • 2015年05月06日 10:49
  • 1949

另一个为javascript中的table中添加控件的方法

html> head> meta http-equiv="Content-Type" content="text/html; charset=gb2312"> titl...
  • IMAGSE
  • IMAGSE
  • 2007年11月26日 21:29
  • 823

在Div中自动添加控件

利用document.createElement()方法在指定的Div中加入控件:          function Add() {       var board = document.getEl...
  • qiushengb
  • qiushengb
  • 2010年02月23日 11:07
  • 2368

在QMainWindow添加控件无法显示而QDialog却可以

今天在QMainWindow添加控制,无法显示,加上布局管理器后也一样,到底为何?       首先,对于QDialog而言,添加控件过程:       1、创建子窗口部件,如         ...
  • u011191259
  • u011191259
  • 2014年11月04日 15:40
  • 1659

Activity 中动态增加控件

@Overrideprotectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);fin...
  • Miniyaner
  • Miniyaner
  • 2013年06月14日 10:55
  • 2438
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在葉面中動態的添加控件
举报原因:
原因补充:

(最多只允许输入30个字)