`
water84222
  • 浏览: 372787 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

基于ASP.NET的Web动态控件创建

阅读更多
摘要:web设计中,有很多场合,页面的控件要动态创建甚至只能动态创建,这样可以增加页面的灵活性,但是给程序员带来了一些麻烦,比如要使用动态创建的控件,怎么使用,都是要求解决的问题,本文基于asp.net,简要介绍了页面的控件如何动态创建,同时也介绍了怎么使用这些动态创建的控件的方法。

  前言:

  自从Microsoft在2000年推出了.net framework以来,给基于internet编程的程序员带来了巨大的福音,.net framework大大简化了web页面设计的繁杂,可见即可得的页面效果大大简化了页面设计程序员的工作任务,code behind技术将页面与代码分离,减少了web页面的无序状态,其中大量可以复用的控件可以无缝的被浏览器使用,由于互联网上95%的浏览器均是Microsoft的Internet Explorer,程序员大可以放心的使用这些控件而不用担心浏览器的兼容性,本文从Microsoft的.net和com控件开始,给出具体例子说明如何在页面上动态创建控件,以及怎么来使用这些动态创建的控件。其中具体使用的语言是vb.net。

  1. Microsoft控件

  目前用于浏览器的动态数据浏览方式主要有以下两种,(1).使用java applet。(2).使用可以在浏览器中运用的控件。两种方法各有利弊,使用java applet,页面执行较慢,编程复杂,可复用性不大,这种方式现在使用较少;越来越多的程序员较倾向于使用控件。其中我们在web中大多数时候是使用到.net 的web control和html control以及一些数据操作控件。

  一般的,在web设计中,通常使用拖拽的方式,将空间放置到页面,然后设置属性就可以了,然后再后台程序中编程使用就可以了。这种方式操作起来很方便,可见即可得,同时引用这些放置好的控件也很方便,但是在有些情况下,我们却不得不要动态创建控件,比如对一一个数据库中的某一些字段,对于不同身份的用户,见到的字段数目是不一样的;还有就是对于不同身份的用户对于某一控件的使能状态是不一样的,我们不能再页面设计时采用一个标准,最好的方式就是动态创建控件,对于不同的情况,通过程序来控制,放置在页面上的控件的数目也通过程序来控制。然后通过程序来引用这些创建好的控件。

  2. 创建控件

  对于程序员来说,用例子说话是最好的方式来提供解决方案,我将在页面上动态的放置一些标签(label)和文本框(textbox),这些文本框里头放置的是从dataset取到的数据,同时我把这些文本框放置到一个表格的相应单元格里,可以实现有序的放置,首先在页面添加一个table。然后根据需要创建不同的列数和行数,如下为动态创建这些文本框的代码:

Dim i As Integer
For i = 0 To IntRowCount - 1
 Dim r As TableRow = New TableRow()
 Dim c1 As TableCell = New TableCell()
 Dim myLabel1 As Label = New Label()

 ‘这里设置该label的ID,对于不同的label,必须设置成不同的ID,我这里设置成前缀lbl1加字段名的组合,例如lbl1xlmc等。

 myLabel1.ID = "Lbl1" & Trim(OleDsField.Tables("Field").Rows(i).Item("column_name")).ToString()
 
 ‘下面的条件语句是为了判断数据库中在字段的值是否为空,根据条件赋予label不同的文本。

 If OleDsField.Tables("Field").Rows(i).Item("column_title").GetType.ToString = "System.DBNull" Then
  myLabel1.Text = ""
 Else
  myLabel1.Text = Trim(OleDsField.Tables("Field").Rows(i).Item("column_title"))
 End If

 c1.Controls.Add(myLabel1)
 r.Cells.Add(c1)
 Dim c2 As TableCell = New TableCell()
 Dim mytextbox As TextBox = New TextBox()
 mytextbox.ID = "Txt" & Trim(OleDsField.Tables("Field").Rows(i).Item("column_name")).ToString()
 If OleDsResult.Tables("Result").Rows(0).Item(i).GetType.ToString = "System.DBNull" Then
  mytextbox.Text = ""
 Else
  mytextbox.Text = Trim(OleDsResult.Tables("Result").Rows(0).Item(i))
 End If

 If Trim(OleDsField.Tables("Field").Rows(i).Item("column_enable")) = "是" Then
  mytextbox.Enabled = True
 Else
  mytextbox.Enabled = False
 End If

 c2.Controls.Add(mytextbox)
 r.Cells.Add(c2)
 Table3.Rows.Add(r)
Next

  这样就成功地添加了两列到表里,至于行数由变量IntRowCount决定,其中IntRowCount为取数据库时得到的记录的行数

  3. 使用动态创建的控件

  使用这些控件时,首先必须要知道这些控件的ID,对于上文所说的这些控件,由于ID名称不定,使用时必须也要根据条件来使用。比如我要找到相应的文本框的ID,就用以下代码可以实现:

Dim txt As TextBox
txt = Me.FindControl("txt" & OleDsField.Tables("Field").Rows(i).Item("column_name"))

  这样就找到了要使用的文本框的这个控件,然后就可以使用相应功能。

  4. 小结

  使用动态创建控件时,难点在于怎么来操作这些动态创建的控件。本文给出了代码,本文例子在.net 2002+windows 2000下调试通过。 
分享到:
评论

相关推荐

    ASP.NET Web 服务器控件 (Visual Studio)

    本人的备用资料,WORD文档. ASP.NET Web 服务器控件是 ASP.NET 网页上的对象,这些控件在该页被请求时运行并向浏览器呈现标记。...本节还将介绍所有的内置 ASP.NET Web 服务器控件以及如何创建自己的控件。

    Asp.Net服务器端控件

    Web控件是Asp.Net特有的,如`<asp:Button>`,提供了更丰富的功能,如内置的验证和事件处理。自定义控件则允许开发者根据特定需求创建自己的控件。 2. **控件属性** 每个Asp.Net服务器端控件都有多个属性,这些属性...

    asp.net web打印控件

    ASP.NET Web打印控件是.NET框架中用于在Web应用程序中实现打印功能的一种工具。它使得开发者无需深入了解打印机制,就能方便地为用户创建打印页面或文档。本文将深入探讨ASP.NET Web打印控件的核心概念、功能特性...

    实验5 ASP.NET 3.5验证控件.ppt

    实验5 ASP.NET 3.5验证控件.ppt

    ASP.Net PDF 查看控件,完整asp.net例子

    总之,ASP.NET PDF查看控件是Web应用中处理PDF文档的关键组件。"PDFViewASP"作为示例,展示了如何在ASP.NET环境中集成和使用这类控件,实现PDF文档的在线查看功能。理解并掌握这些知识点对于提升ASP.NET开发能力、...

    asp.net web控件说明

    ASP.NET Web 控件是开发基于Web的应用程序时常用的一种工具,它允许开发者通过拖放方式在网页上创建交互式元素。这些控件是ASP.NET框架的一部分,为开发人员提供了丰富的功能,简化了网页开发的过程。本文将深入探讨...

    asp.net实现动态添加控件并添加事件实例

    在 ASP.NET 中,动态创建控件是指在页面生命周期的某个阶段(通常是 OnInit 或 OnLoad 事件)通过代码而非在设计视图中创建控件。这种做法在需要根据用户输入或特定条件灵活地改变页面结构时非常有用。例如,你可能...

    Web程序设计实验1ASP.NET标准控件和验证控件

    1、熟练掌握ASP.NET服务器控件的使用。 2、熟练掌握验证控件的使用。 二、实验内容 1、编写一个Web应用程序Login,该程序用于检查用户登录信息。当用户输入正确的用户名和密码时,显示登录成功的消息。否则,显示...

    ASP.NET用户控件和自定义控件

    在ASP.NET中,可以通过CSS和JavaScript创建一个简单的进度条,或者利用自定义控件实现更复杂的功能,如动态更新进度、显示百分比等。 总结来说,用户控件和自定义控件是ASP.NET中构建可复用、高效且高度定制界面的...

    一个基于ASP.NET的动态加载Flash到Web网页的控件源代码

    总结来说,这个基于ASP.NET的动态加载Flash到Web网页的控件是通过自定义服务器端控件和客户端脚本协同工作实现的,提供了一种灵活的方式在Web页面上按需加载Flash内容。通过深入学习和理解这个源代码,开发者可以...

    ASP.NET Web服务器控件

    基于C#的ASP.NET Web服务器控件简介、说明、操作及实例

    基于asp.net的同学录

    在这个“基于ASP.NET的同学录”项目中,我们主要探讨的是如何使用ASP.NET技术来创建一个功能完备的同学录管理系统。 1. **ASP.NET架构** ASP.NET基于.NET Framework,提供了多种编程模型,如ASP.NET Web Forms、...

    基于ASP.NET的图书销售系统

    ASP.NET是由微软公司推出的服务器端Web应用程序框架,用于构建动态网站、Web应用程序和Web服务。在本“基于ASP.NET的图书销售系统”中,开发者使用了Visual Studio 2005这一集成开发环境进行开发。Visual Studio ...

    asp.net 动态创建控件源码

    这些示例将深入到如何在VB.NET中处理更复杂的动态控件创建和事件处理,这对于提高你的ASP.NET编程技能非常有价值。 总之,动态创建控件是ASP.NET开发中的一个重要特性,它提供了强大的灵活性和自适应性。通过VB.NET...

    asp.net c#时间控件

    ASP.NET是微软推出的用于构建动态Web应用的框架,它提供了丰富的服务器控件和事件驱动模型,使得Web开发更加高效。 压缩包中的文件"ScheduleViewSetup.msi"可能是一个安装程序,通常用于安装一个包含时间控件的...

    asp.net web文本编辑器控件

    ASP.NET Web文本编辑器控件是开发Web应用时不可或缺的一部分,尤其在构建内容管理系统或论坛等需要用户输入丰富格式文本的场景中。CKEditor是一款功能强大的Web文本编辑器,它提供了丰富的文本编辑功能,如文本格式...

    asp.net 动态添加删除控件

    在ASP.NET中,动态添加和删除控件是一项关键技能,特别是在构建高度交互和自定义的Web应用程序时。本文将深入探讨如何在VS.NET 2008环境下利用ASP.NET技术来实现这一功能。 首先,我们需要了解ASP.NET页面生命周期...

    asp.net web页面电子称串口控件完整使用方法

    1. 创建一个新的ASP.NET Web Form页面,添加一个隐藏的IFrame元素,用于承载ActiveX控件。 2. 在JavaScript中,使用`document.createElement`方法动态创建`OBJECT`标签,插入到IFrame的`innerHTML`,并设置控件的...

    Coolite ASP.NET Web控件

    Coolite ASP.NET Web控件是一组高效、便捷且易于使用的开发工具,专为ASP.NET框架设计。这些控件极大地简化了Web应用程序的构建过程,提供了丰富的功能,允许开发者快速创建交互式和动态的网页。然而,值得注意的是...

Global site tag (gtag.js) - Google Analytics