科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件基于ASP.NET的Web动态控件创建

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

web设计中,有很多场合,页面的控件要动态创建甚至只能动态创建,这样可以增加页面的灵活性

作者:lyx123 来源:论坛 2007年10月28日

关键字: Linux

  • 评论
  • 分享微博
  • 分享邮件
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下调试通过。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章