冰雪

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

2019-09-11 15:57:38来源:励志吧0次阅读

三.HyperlinkColumn数据列以及ButtonColumn数据列的应用:

上面我向大家介绍了BoundColumn数据列的应用,而其它的两种数据列:HyperlinkColumn数据列以及ButtonColumn数据列的应用方式与之相差无几。

HyperlinkColumn数据列包含了DataTextField属性以及DataNavigateUrlField属性等,前者可以用于指定要显示的文本内容,而后者则用于指定超链接。同时HyperlinkColumn数据列还包含了一个可用于指定文本显示格式的DataNavigateUrlFormatString属性。

像HyperlinkColumn数据列那样ButtonColumn数据列也提供了DataTextField属性以及DataTextFormatString属性。同时它还提供了一个CommandName属性,该属性能指定按钮被点击时服务器端的响应动作。而此时DataGrid控件的OnItemCommand属性必须指向一个相应的方法,该方法在按钮被点击时会自动被调用。DataGrid控件中的一行可以包含多个ButtonColumn数据列,每个数据列中的按钮消息响应函数都是OnItemCommand属性所对应的方法,而不同的按钮是根据其CommandName属性来区分函数所应执行的不同部分的。ButtonColumn数据列还提供了一个ButtonType属性以指定按钮的外观,该属性包括两种可取值:LinkButton(默认)和PushButton。

下面我们在原来解决方案的基础上再添加一个新的Web应用程序项目,并在其中运用DataGrid控件的BoundColumn数据列、HyperlinkColumn数据列以及ButtonColumn数据列。下面是本项目的主要文件以及其代码后置文件的内容:

WebForm1.aspx:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="DataGridTemplates2.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 MS_POSITIONING="FlowLayout">

<form id="Form1" method="post" runat="server">

<asp:DataGrid id="myDataGrid" runat="server" HeaderStyle-Font-Bold="True" Cellpadding="4" BorderWidth="1px" AutoGenerateColumns="False" GridLines="Horizontal" Font-Names="Verdana,Arial,sans-serif" Font-Size="12px" BorderStyle="Solid">

<AlternatingItemStyle BackColor="#EFEFEF"></AlternatingItemStyle>

<ItemStyle Font-Size="X-Small"></ItemStyle>

<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="Teal"></HeaderStyle>

<Columns>

<asp:BoundColumn DataField="CustomerID" HeaderText="ID"></asp:BoundColumn>

<asp:HyperLinkColumn DataNavigateUrlField="Url" DataTextField="CompanyName" HeaderText="Comapny Name"></asp:HyperLinkColumn>

<asp:ButtonColumn Text="Get Details" ButtonType="PushButton" CommandName="GetDetails"></asp:ButtonColumn>

</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 DataGridTemplates2

{

/// <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;integrated security=true;database=Northwind" );

SqlCommand cmd = new SqlCommand( "SELECT *, 'http://www.' + CustomerID + '.com' As Url 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);

}

查看本文来源

营养不良宝宝怎么食补
小孩积食是什么症状
宝宝发烧怎么办
亚宝药业薏芽健脾凝胶
分享到: