科技行者

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

知识库

知识库 安全导航

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

在ASP.Net中创建动态表格

  • 扫一扫
    分享文章到微信

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

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

作者:liyu 来源:yesky 2007年11月8日

关键字: Windows

  • 评论
  • 分享微博
  • 分享邮件
第 1 步: 一个基本的 DataGrid

  序列的第一步展示了一个页面,其中包含单独一个 DataGrid 控件,用于显示来自数据源的一个只读图书列表。

图 2. 完成第 1 步后的页面

  DataGrid 声明来自:

<%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Borrow.aspx.vb" Inherits="borrrow.Borrow"%>
<%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>档案、图书流通管理</title>
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body bgColor="beige" MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:label id="Label14" style="Z-INDEX: 101; LEFT: 100px; POSITION: absolute; TOP: -50px" runat="server" Width="47px" Height="18px"></asp:label>
<asp:linkbutton id="LinkFind" style="Z-INDEX: 105; LEFT: 361px; POSITION: absolute; TOP: 182px" runat="server" Width="33px" Height="22px" ToolTip="按此进行查询" ForeColor="#0000C0">查询</asp:linkbutton>
<TABLE style="Z-INDEX: 104; LEFT: 133px; WIDTH: 637px; POSITION: absolute; TOP: 75px; HEIGHT: 74px" cellSpacing="1" cellPadding="1" width="637" border="1">
<TR>
<TD style="WIDTH: 92px">
<asp:label id="lblFind1" runat="server" ForeColor="Green">检索号</asp:label>
</TD>
<TD style="WIDTH: 196px">
<asp:textbox id="txtFind1" runat="server" Width="199px" Height="26px"></asp:textbox>
</TD>
<TD style="WIDTH: 83px">
<asp:label id="lblFind4" runat="server" ForeColor="Green">标准号</asp:label>
</TD>
<TD>
<asp:textbox id="txtFind4" runat="server" Width="243px" Height="26px"></asp:textbox>
</TD>
</TR>
<TR>
<TD style="WIDTH: 92px">
<asp:label id="lblFind2" runat="server" ForeColor="Green">标准书号</asp:label>
</TD>
<TD style="WIDTH: 196px">
<asp:textbox id="txtFind2" runat="server" Width="199px" Height="26px"></asp:textbox>
</TD>
<TD style="WIDTH: 83px">
<asp:label id="lblFind5" runat="server" ForeColor="Green">分类号</asp:label>
</TD>
<TD>
<asp:textbox id="txtFind5" runat="server" Width="243px" Height="26px"></asp:textbox>
</TD>
</TR>
<TR>
<TD style="WIDTH: 92px">
<asp:label id="lblFind3" runat="server" ForeColor="Green">图书名称</asp:label>
</TD>
<TD style="WIDTH: 196px">
<asp:textbox id="txtFind3" runat="server" Width="199px" Height="26px"></asp:textbox>
</TD>
<TD style="WIDTH: 83px">
<asp:label id="lblFind6" runat="server" ForeColor="Green">检索号</asp:label>
</TD>
<TD>
<asp:textbox id="txtFind6" runat="server" Width="242px" Height="26px"></asp:textbox>
</TD>
</TR>
</TABLE>
<asp:datagrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 129px; POSITION: absolute; TOP: 213px" runat="server" Width="1600px" Height="325px" AlternatingItemStyle-Wrap="False" CellPadding="4" BorderWidth="1px" BorderStyle="None" BorderColor="#CC9966" BackColor="White" AllowPaging="True" ToolTip="可按选择按钮选择所要借阅的图书、资料">
<FooterStyle Wrap="False" ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
<HeaderStyle Font-Bold="True" Wrap="False" HorizontalAlign="Left" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC" Wrap="False" Mode="NumericPages"></PagerStyle>
<SelectedItemStyle Font-Bold="True" Wrap="False" ForeColor="#9900FF" BackColor="#FFCC66"></SelectedItemStyle>
<EditItemStyle Wrap="False"></EditItemStyle>
<AlternatingItemStyle Wrap="False"></AlternatingItemStyle>
<ItemStyle Wrap="False" ForeColor="#CC9900" BackColor="White"></ItemStyle>
<Columns>
<asp:ButtonColumn Text="查阅" HeaderText="选择" CommandName="Select" ItemStyle-ForeColor="#3366CC"></asp:ButtonColumn>
</Columns>
</asp:datagrid>
<asp:LinkButton id="LinkSumit" style="Z-INDEX: 109; LEFT: 816px; POSITION: absolute; TOP: 184px" runat="server" Width="42px" Height="18px" ToolTip="可按此把借阅信息传入管理人员" ForeColor="#0000C0">提交</asp:LinkButton>
<asp:Label id="Label1" style="Z-INDEX: 110; LEFT: 138px; POSITION: absolute; TOP: 186px" runat="server" ForeColor="#C00000">你已经选择了该行!</asp:Label>
</form>
</body>
</HTML>

  上面的代码展示 DataGrid,该控件的各种属性已经过声明设定。 DataGrid 控件与其它 Web 控件如 Font、BackColor、ForeColor 和 BorderWidth 共享一组公用的样式属性。另外, DataGrid 提供仅适用于表的属性如 CellPadding。最后, DataGrid 提供附加的样式属性,这些样式属性影响其中各项目和列如 HeaderStyle、ItemStyle 和 AlternatingItemStyle 的表示。这些样式属性用于创建丰富多采且极富魅力的数据视觉效果。

  DataGrid 支持从其所绑定的数据源自动生成列的功能。在本例中, AutoGenerateColumns 属性已被设定为 true。因此必须借助要展示的列集对 Columns 集合进行绑定。从而可以更多地控制表现效果,诸如列的次序和标头以及与每列对应的样式。这一步中所定义的列均为 BoundColumns,从而可以通过其 DataField 属性,绑定到数据源的单独一个字段。您在以后步骤中可以看到, DataGrid 允许选择各种各样类型的列。

  下面的类包含支持本页面的代码。

Step1Page.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 Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim info As String, time
If Not Page.IsPostBack Then
If Now.Hour >= 6 And Now.Hour < 12 Then
info = "早上好!!"
ElseIf Now.Hour > 12 And Now.Hour < 18 Then
info = "下午好!!"
Else
info = "晚上好!!"
End If
Dim Counter As Int16
Counter = Application("Counter")
lblInfo.Text = Application("UserName") + "," + info + Chr(13) + "欢迎你前来借阅 。." + Chr(10) + "你是第" + Counter.ToString + "位来访者!"

End If
If IsNothing(Session("mTable")) Then
SelectTable = CreateTable()
Session("mTable") = SelectTable
SetText()
Else
SelectTable = Session("mTable")
End If
End Sub
Private Function CreateTable() As DataTable
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("ID", GetType(String)))
dt.Columns.Add(New DataColumn("Name", GetType(String)))
' dt.Columns(0).ColumnName = "系号"
' dt.Columns(1).ColumnName = "名称"
Return dt
End Function
End Class

  该类超越 Page 的 OnLoad 方法 (类似于实施 Page_Load),将 建立一个临时表并巧妙地利用Session在加载页面时保证仅执行一次。与其它一般页面一样,确定来访者人数。

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

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

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