问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2023-11-03 07:53

我来回答

1个回答

热心网友 时间:2024-12-03 14:42

  在中多数据绑定的控件很多 *能来说 应该属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 StoredProcere;

  SqlDataAdapter dataAdapter = new SqlDataAdapter(m);

  DataSet ds = new DataSet();

  dataAdapter Fill(ds);

  return ds;

  }

  }

  }

lishixin/Article/program/net/201311/12926
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
微信限额20万怎样提到30万 微信怎么提升限额 微信限制额度二十万了怎么办 爱奇艺电视版会员电影没声音 爱奇艺怎么没声音了 爱奇艺万能播放器怎么没声音-爱奇艺播放器没声音修复方法 爱奇艺播放没有声音了怎么回事 主持人刘炽朗诵《采桑子·重阳》 卧室空间大了摆放什么风水好 卧室空间大了摆放什么 中国平安金融集团上海分公司这公司是一家怎样的公司?是骗子吗? 吃皮蛋会不会长胖? 百度浏览器的缓存位置在哪17 百度浏览器 收藏夹文件在电脑的什么位置啊?55 百度浏览器扩展安装后放在哪里? 耳前瘘管是什么样的形状详细的,急!!!!!!!!!8 神经纤维瘤好治吗?20 内蒙古的 旗 是什么意思?3 内蒙的一个“旗”是什么行政单位?13 内蒙古的行政区划里“旗,盟”等相当于哪一级别?270 下列属于先天性行为的一组是(  )A.猫捉老鼠、黄牛耕地、老... 高层建筑的消防给水系统由哪几个部分组成11 送男人腰带,祝男人腰财万贯之类的祝福语?2 我买了一个腰带给老公做生日礼物,可祝福语怎么写呢21 生日送男朋友腰带写什么祝福语43 儿子,花呗,借呗,信用卡,微博,美团,有钱花,京东,招商,共...2 怎么让excel打印不显示边框1 excel表格打印时为什么有的边框显示不出来35 QQ飞车手游,哪只宠物是竞速用的? 2007版的excel打印时总会出现没有格子线,网格线的设置...3 QQ飞车手游什么宠物适合平民使用?1 晚上吃皮蛋会发胖吗?156 保暖大衣怎样搭配裤子1 审计后需调整本年度报表期初数,通过以前年度损益调整科目调账后...4 请问有哪些心理学考研培训机构比较好的,最好离华南师范大学比较... 买的液晶显示器怎么辨别是否翻新机器?22 驾照扣分是不是必须要身份证17 有没有好的考研辅导机构? 大家给推荐一下哪家考研培训机构好?2 2020考研培训班哪个机构比较好?有没有推荐?5 想考研一对一辅导,有什么好的培训机构推荐吗?1 谁可以给一个&lt;熊熊部落&gt;的邀请码呢~谢谢啦!!!3 有谁知道糟鱼的做法,简单点的做法谢谢3 快 乐 大 本 营 主 持 人 的 服 装 是 谁 设计 的...4 无限什么四字成语27 有哪些形容词来形容女性的美?17 想在家门口安装1个摄像头,哪种款式的比较好一些?8 家门口安个摄像头用哪种的好?7 我得了神经纤维瘤如何治疗170 两只耳朵后面各有一个小坑,据说叫后仓,有没有详细的介绍。(不...181 冠道主动紧急制动,是只有顶配才有吗,还是全1