知识大全 asp.net中显示DataGrid控件列序号的几种方法

Posted

篇首语:时间会告诉我们,简单的喜欢,最长远;平凡中的陪伴,最安心。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 asp.net中显示DataGrid控件列序号的几种方法相关的知识,希望对你有一定的参考价值。

asp.net中显示DataGrid控件列序号的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在中多数据绑定的控件很多 论功能来说 应该属DataGrid最为齐全 但它没有提供现成的显示记录序号的功能 不过我们可以通过它所带的一些参数来间接得到序号 下面来看看怎样得到和显示序号值计算方式如下

  ( )在后台

  DataGrid CurrentPageIndex * DataGrid PageSize + e Item ItemIndex +

  ( )在前台

  DataGrid CurrentPageIndex * DataGrid PageSize + Container ItemIndex +

  说明

  e表示System Web UI WebControls DataGridItemEventArgs参数类的实例

  DataGrid 这里表示前台的一个实例

  DataGrid CurrentPageIndex 获取或设置当前显示页的索引

  DataGrid PageSize 获取或设置要在 DataGrid 控件的单页上显示的项数

  下面我使用了 种方法来在前台显示序号 不过都是围绕上面的计算式展开

  ( )         使用DataGrid的ItemCreated设置值 而前台的单元格可以是绑定列或者模板列(包括空模板)

  ( )         使用DataGrid的ItemDataBound设置值 而前台的单元格可以是绑定列或者模板列(包括空模板)

  ( )         在前台直接绑定计算表达式

  ( )         在后台类中编写方法计算表达式由前台页面类继承调用

  备注 在数据库中获取数据时设置额外的序号列这里不做讨论 我认为这是最糟糕的实现方法

  下面以获取Northwind数据库的Customers表的数据为列 显示如下

  序号

  序号

  序号

  序号

  序号

  CustomerID

  

  

  

  

  

  LONEP

  

  

  

  

  

  MAGAA

  

  

  

  

  

  MAISD

  

  

  

  

  

  MEREP

  

  

  

  

  

  MORGK

  

  

  

  

  

  NORTS

  

  

  

  

  

  OCEAN

  

  

  

  

  

  OLDWO

  

  

  

  

  

  OTTIK

  

  

  

  

  

  PARIS

                    

  

         下面是WebFormPaging aspx文件代码

  <%@ Page language= c# Codebehind= WebFormPaging aspx cs AutoEventWireup= false Inherits= AspnetPaging WebForm %>

  <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN >

  <HTML>

  <HEAD>

  <title>WebForm </title>

  <meta content= Microsoft Visual Studio NET name= GENERATOR >

  <meta content= C# name= CODE_LANGUAGE >

  <meta content= JavaScript name= vs_defaultClientScript >

  <meta content= name= vs_targetSchema >

  </HEAD>

  <body>

  <form id= Form method= post runat= server >

  <TABLE id= Table cellSpacing= cellPadding= width= align= center border= >

  <TR>

  <TD><asp:datagrid id= DataGrid runat= server AutoGenerateColumns= False Width= % AllowPaging= True >

  <Columns>

  <asp:BoundColumn HeaderText= 序号 ></asp:BoundColumn>

  <asp:TemplateColumn HeaderText= 序号 ></asp:TemplateColumn>

  <asp:TemplateColumn HeaderText= 序号 >

  <ItemTemplate>

  <asp:Label ID= itemIndex runat= server ></asp:Label>

  </ItemTemplate>

  </asp:TemplateColumn>

  <asp:TemplateColumn HeaderText= 序号 >

  <ItemTemplate>

  <%# (DataGrid CurrentPageIndex * DataGrid PageSize + Container ItemIndex + ) %>

  </ItemTemplate>

  </asp:TemplateColumn>

  <asp:TemplateColumn HeaderText= 序号 >

  <ItemTemplate>

  <%# GetRecordIndex( Container ItemIndex ) %>

  </ItemTemplate>

  </asp:TemplateColumn>

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

  </Columns>

  <PagerStyle Mode= NumericPages ></PagerStyle>

  </asp:datagrid></TD>

  </TR>

  <TR>

  <TD></TD>

  </TR>

  <TR>

  <TD></TD>

  </TR>

  </TABLE>

  </form>

  </body>

  </HTML>

  后台WebFormPaging aspx cs代码如下

  using System;

  using System Collections;

  using System ComponentModel;

  using System Data;

  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 AspnetPaging

  

  public class WebForm : System Web UI Page

  

  private int recordCount = ;

  protected System Web UI WebControls DataGrid DataGrid ;

  private void Page_Load(object sender System EventArgs e)

  

  if(!Page IsPostBack)

  

  DataGridDataBind();

  

  

  //绑定数据

  private void DataGridDataBind()

  

  DataSet ds = DataAccess GetCustomersData();

  this DataGrid DataSource = ds;

  this DataGrid DataBind();

  

  #region Web 窗体设计器生成的代码

  override protected void OnInit(EventArgs e)

  

  InitializeComponent();

  base OnInit(e);

  

  /// <summary>

  /// 设计器支持所需的方法 不要使用代码编辑器修改

  /// 此方法的内容

  /// </summary>

  private void InitializeComponent()

  

  this DataGrid ItemCreated += new System Web UI WebControls DataGridItemEventHandler(this DataGrid _ItemCreated);

  this DataGrid PageIndexChanged += new System Web UI WebControls DataGridPageChangedEventHandler(this DataGrid _PageIndexChanged);

  this DataGrid ItemDataBound += new System Web UI WebControls DataGridItemEventHandler(this DataGrid _ItemDataBound);

  this Load += new System EventHandler(this Page_Load);

  

  #endregion

  //翻页

  private void DataGrid _PageIndexChanged(object source System Web UI WebControls DataGridPageChangedEventArgs e)

  

  DataGrid CurrentPageIndex = e NewPageIndex;

  DataGridDataBind();

  

  //获取当前项

  protected int GetRecordIndex(int itemIndex)

  

  return (DataGrid CurrentPageIndex * DataGrid PageSize + itemIndex + );

  

  private void DataGrid _ItemCreated(object sender System Web UI WebControls DataGridItemEventArgs e)

  

  DataGrid dg = (DataGrid)sender;

  if(e Item ItemType == ListItemType Item || e Item ItemType == ListItemType AlternatingItem)

  

  e Item Cells[ ] Text = (dg CurrentPageIndex * dg PageSize + e Item ItemIndex + ) ToString();

  e Item Cells[ ] Text = (dg CurrentPageIndex * dg PageSize + e Item ItemIndex + ) ToString();

  

  

  private void DataGrid _ItemDataBound(object sender System Web UI WebControls DataGridItemEventArgs e)

  

  DataGrid dg = (DataGrid)sender;

  if(e Item ItemType == ListItemType Item || e Item ItemType == ListItemType AlternatingItem)

  

  ((Label)e Item FindControl( itemIndex )) Text = (dg CurrentPageIndex * dg PageSize + e Item ItemIndex + ) ToString();

  

  

  

  数据层代码如下

  using System;

  using System Data;

  using System Data SqlClient;

  using System Configuration;

  namespace AspnetPaging

  

  public class DataAccess

  

  private static string connString = ConfigurationSettings AppSettings[ ConnString ];

  private DataAccess()

  

  

  public static DataSet GetCustomersData()

  

  SqlConnection conn = new SqlConnection(connString);

  SqlCommand m = new SqlCommand( GetCustomers conn);

  m CommandType = CommandType StoredProcedure;

  SqlDataAdapter dataAdapter = new SqlDataAdapter(m);

  DataSet ds = new DataSet();

  dataAdapter Fill(ds);

  return ds;

  

  

  

cha138/Article/program/net/201311/12926

相关参考

知识大全 Asp.net中DataGrid控件的自定义分页

Asp.net中DataGrid控件的自定义分页  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Asp.NET自定义DataGrid控件

Asp.NET自定义DataGrid控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一&nb

知识大全 一个ASP.Net的DataGrid分页控件

一个ASP.Net的DataGrid分页控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  写的

知识大全 asp.net控件开发(一)-显示控件内容

  控件的显示自然会离不开输出HTMLCSSJavascript等前台的显示内容所以开发一个控件的时候第一件事就是要知道如何输出客户端要显示的内容  一选择基类  中所有的标准控件都可以拿过来作为基类

知识大全 asp.net显示图片到指定的Image控件中

asp.net显示图片到指定的Image控件中  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由

知识大全 asp.net 控件开发(一)显示控件内容

  控件的显示自然会离不开输出cssjavascript等前台的显示内容所以开发一个控件的时候第一件事就是要知道如何输出客户端要显示的内容一选择基类    &n

知识大全 ASP.NET中的DataGrid的属性

ASP.NET中的DataGrid的属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET中为DataGrid添加合计字段

ASP.NET中为DataGrid添加合计字段  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  论

知识大全 ASP.NET中实现DataGrid数据排序

ASP.NET中实现DataGrid数据排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Vi

知识大全 ASP.NET中为DataGrid添加单选框

ASP.NET中为DataGrid添加单选框  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs