转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ASP.NET中DataGrid控件应用技巧简述         ★★★★

ASP.NET中DataGrid控件应用技巧简述

作者:闵涛 文章来源:闵涛的学习笔记 点击数:787 更新时间:2009/4/23 10:31:40
一.概述:

  运用ASP.NET开发Web应用程序过程中,DataGrid是一个非常重要的控件,几乎任何和数据相关的表现都要用到该控件。所以熟练掌握DataGrid控件的应用技巧是每个Web开发人员所必备的基本能力。

  DataGrid控件能以表格的方式显示数据源中的数据,并提供了诸如分页、排序以及过滤等一些强大的内置功能,所以它能大大简化Web应用程序的开发过程。同时,开发者还可以通过运用各种不同的数据绑定列来自定义DataGrid控件显示数据的方式,这样就大大增强了DataGrid控件的功能。本文我就将向大家介绍如何运用其中的TemplateColumn、EditCommandColumn、HyperlinkColumn、ButtonColumn以及BoundColumn等来自定义DataGrid控件显示数据的方式。

  二.BoundColumn数据列的应用:

  一般地,我们运用DataGrid控件开发数据驱动的Web应用程序时会以一行显示数据源中的某一条记录,而其中的一列则显示某个特定的字段值。DataGrid控件本身为我们提供了强大的功能,所以我们只需要以很少的代码便可以实现数据的显示功能。不过,这样也带来了一个问题,那就是我们如何来个性化显示数据的方式呢?显然DataList控件和Repeater控件在这个方面要强于DataGrid控件,不过如果我们放弃了DataGrid控件也就相当于放弃了其具有的强大功能。那么,我们如何运用DataGrid控件也来实现数据显示的自定义功能呢?首先,我们得把DataGrid控件根据数据源自动产生数据绑定列的功能关掉,方法很简单,就是将其AutoGenerateColumns属性设置为False即可。下面是这种方法的一个示例:

<asp:DataGrid runat= "server"id="myDataGrid" AutoGenerateColumns="False">
</asp:DataGrid>

  一旦其AutoGenerateColumns属性为False值,我们就得编程实现数据列的绑定了。在绑定数据列过程中,我们可以运用上面介绍的五中数据列中的任何一种,不过任何数据列都必须在<Columns></Columns>标记内被定义,这个标记能表明被定义的对象是一种数据列。

  下面我们首先来介绍BoundColumn数据列的应用。通过运用BoundColumn数据列,我们能根据自己的需求来动态地将数据源中的数据绑定到特定的数据列上并修改数据列的外观,比如我们可以更改各个列显示的次序、使DataGrid控件只显示某些字段的值而非全部字段的值、更改数据列的标题等等。BoundColumn数据列能设定DataField、DataFormatString、FooterText、HeaderText、HeaderImageUrl以及SortField等属性,而正是这些使得DataGrid控件的外观变得千变万化、多姿多彩。

  下面,我们来建立一个示例性的Web应用程序项目,该项目运用到了DataGrid控件,并且显示了如何在其中运用BoundColumn数据列来自定义数据的显示方式。下面是本项目的主要文件以及其代码后置文件的内容:

  WebForm1.aspx:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="DataGridTemplates.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:DataGrid runat="server" id="myDataGrid" AutoGenerateColumns="False" BorderWidth="1px" Font-Names="Verdana,Arial,sans-serif" Font-Size="12px" BorderColor="#404040" GridLines="Horizontal" CellPadding="4">
<AlternatingItemStyle BackColor="#E0E0E0"></AlternatingItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="Teal"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="CustomerID" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="CompanyName" HeaderText="Company Name"></asp:BoundColumn>
<asp:BoundColumn DataField="ContactName" HeaderText="Contact Name"></asp:BoundColumn>
<asp:BoundColumn DataField="Address" HeaderText="Address"></asp:BoundColumn>
<asp:BoundColumn DataField="City" HeaderText="City"></asp:BoundColumn>
<asp:BoundColumn DataField="Region" HeaderText="Region"></asp:BoundColumn>
<asp:BoundColumn DataField="PostalCode" HeaderText="Postal Code">
<HeaderStyle Wrap="False"></HeaderStyle>
</asp:BoundColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>

WebForm1.aspx.cs:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace DataGridTemplates
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid myDataGrid;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if( !Page.IsPostBack )
BindData();
}

private void BindData()
{
SqlConnection con = new SqlConnection( "server=localhost;database=Northwind;integrated security=true;" );
SqlCommand cmd = new SqlCommand( "SELECT * FROM Customers", con );

try
{
con.Open();
myDataGrid.DataSource = cmd.ExecuteReader();
myDataGrid.DataBind();
con.Close();
}
catch( Exception ) {}
if( con != null && con.State == ConnectionState.Open )
con.Close();
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

  项目创建完毕,在浏览器中运行的效果如图1所示:


图1 DataGrid控件中运用BoundColumn数据列显示数据的效果。


[VB.NET程序]VB.NET中关于DataGrid颜色的自定义。  [VB.NET程序]vb.net读写xml(2)--实现datagrid与xml的沟通(原创…
[VB.NET程序]根据表格内容,自动调整VB.NET中Datagrid控件单元…  [VB.NET程序][原创]VB.net技巧之六------DataGrid模板列中的超…
[VB.NET程序][原创]VB.net技巧之五------在DataGrid中显示图片  [VB.NET程序]vb.net2003中,利用datagrid更新数据(原创)
[Web开发]用Javascript模仿DataGrid  [Web开发]Binding a DataGrid to an ADO Recordset
[Web开发]动态的管理ASP.NET DataGrid数据列  [Web开发]ADO在vb.net中的使用(与datagrid结合)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台