科技行者

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

知识库

知识库 安全导航

至顶网软件频道应用软件在ASP.Net中创建动态表格

在ASP.Net中创建动态表格

  • 扫一扫
    分享文章到微信

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

DataGrid 控件是与 ASP.Net Page Framework 一起发行的数据绑定的服务器控件

作者:liyu 来源:yesky 2007年10月25日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
第 2 步: 带有动态绑定的DataGrid

  创建带有动态绑定的DataGrid视图的一个方法就是一个DataGrid来显示不同的数据表格的内容。这里有个必须解决的问题,就是不同的表在一个表格中怎样绑定?如何确定表的字段,特别是表的英文字段怎样变成中文?大多数的方法是用绑定字段方法实现,在绑定字段后改变标题,这种方法是不可取的。一般不能实现动态绑定,因在绑定字段时必须先申明DataGrid,这里,我们是不允许申明二个以上的DataGrid。正确的方法是在用表绑定DataGrid前临时改变表的字段名。下面就是实现的方法

  页包含对DataGrid 的数据绑定。DataGrid 用于显示图书和档案的内容。与第 1 步相同, DataGrid 包含一个针对要显示的列的定义,以及用于为列、行和总体控制提供可视格式化的样式属性设置。在绑定之前先根据用户的选择进行查询。查询内容是不变化的,我们通过SetText过程来动态设置标题。在查询前先生成查询语句,通过查询语句改变其字段名,同时进行动态的模糊查询。这里要说明的是页面是不能保留数据的,所以我们用到了应用对象Application来保留数据。

  Step2aPage.vb 包含支持详细资料页面的代码。

Step2aPage.vb:

Imports System.DBNull
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.DateTime
Imports DataAccess

Public Class Borrow
Inherits System.Web.UI.Page
Public DB As New OleDataAccess()
Dim myDataSet As New DataSet()
Dim SelectTable As New DataTable()
Dim SelectView As New DataView()

Private Sub SetText()
Select Case Application("Index")
Case 0
lblFind1.Text = "检索号 "
lblFind2.Text = "图书分类"
lblFind3.Text = "图书名称"
lblFind4.Text = "分类号"
lblFind5.Text = "作者"
lblFind6.Text = "有效性"
Case 1
lblFind1.Text = "编号 "
lblFind2.Text = "卷册名称"
lblFind3.Text = "设计专业代码"
lblFind4.Text = "专业代码"
lblFind5.Text = "馆藏号"
lblFind6.Text = "负责人 "
Case 2
End Select
End Sub

Private Sub Data2bind()
DataGrid2.DataSource = SelectTable.DefaultView
DataGrid2.DataBind()
End Sub

Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
Application("Index") = 0
SetText()
End Sub

Private Sub LinkButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton2.Click
Application("Index") = 1
SetText()
End Sub

Private Sub LinkFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkFind.Click
Dim strSql As String
Dim txt(6) As String
Dim i As Int16 = 0
txt(0) = Trim(txtFind1.Text)
txt(1) = Trim(txtFind2.Text)
txt(2) = Trim(txtFind3.Text)
txt(3) = Trim(txtFind4.Text)
txt(4) = Trim(txtFind5.Text)
txt(5) = Trim(txtFind6.Text)
If txt(0) = "" And txt(1) = "" And txt(2) = "" And txt(3) = "" And txt(4) = "" And txt(5) = "" Then
Exit Sub
End If
For i = 0 To 5
If txt(i) = "" Then txt(i) = "!!!!"
Next
Try
If Application("Index") = 0 Then
strSql = "SELECT JSH AS 检索号, TSMC AS 图书名称, TSFL AS 图书分类, CS AS 册数, FLH AS 分类号, DJ AS 单价, ZZ AS 作者, BZ AS 备注, ZBBM AS 主编部门, FBRQ AS 发布日期, SSRQ AS 实施日期, YXX AS 有效性, ZT AS 状态 FROM G2272.KPK " & _
" WHERE JSH LIKE '%" & txt(0) & _
"%' OR TSFL LIKE '%" & txt(1) & _
"%' OR TSMC LIKE '%" & txt(2) & _
"%' OR FLH LIKE '%" & txt(3) & _
"%' OR ZZ LIKE '%" & txt(4) & _
"%' OR YXX LIKE '%" & txt(5) & "%'"
Else
strSql = "SELECT SYSTEM_ID AS 编号, JCMC AS 卷册名称, GCDM AS 工程代码, ZYDM AS 专业代码, GCH AS 馆藏号, RKRQ AS 入库日期, TZZS AS 图纸张数, GDZB AS 归档正本, GDFB AS 归档副本, JC AS 说明书, ZSR AS 清册, ZBR AS 负责人 FROM DOCSADM.TWML " & _
" WHERE SYSTEM_ID LIKE '%" & txt(0) & _
"%' OR JCMC LIKE '%" & txt(1) & _
"%' OR GCDM LIKE '%" & txt(2) & _
"%' OR ZYDM LIKE '%" & txt(3) & _
"%' OR GCH LIKE '%" & txt(4) & _
"%' OR ZBR LIKE '%" & txt(5) & "%'"
End If
myDataSet = Application("DB").ExecuteSQL(strSql)
DataGrid1.DataSource = myDataSet.Tables(0).DefaultView
DataGrid1.DataBind()
Catch ex As Exception
' MsgBox("错误信息", ex.Message & vbCrLf & "stack step")
End Try
End Sub
End Class

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

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

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