请问在DataGrid前怎么加个序号来表示是第几行啊?

呆呆辉 2005-11-23 10:14:59
请问在DataGrid前怎么加个序号来表示是第几行啊? 不要告速我在表中建个自增的项ID.这个方案不要.

我的想法是用一个模版列,lable.但我不知道怎么让Lable.Text 每行生成是自加一,各位高手给点代码吧~~~~
...全文
190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
c11_11_11 2005-11-23
  • 打赏
  • 举报
回复
private void AddOrderID(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//如果当前项不为空
if(e.Item.ItemIndex != -1 )
{
//取得当前项的索引值加1,因为项的索引值是从0开始的.
int orderID = e.Item.ItemIndex+1;
//设置第一列为的单元格内容为当前项索引值加1
e.Item.Cells[0].Text = orderID.ToString();
}
}
eqh 2005-11-23
  • 打赏
  • 举报
回复
.aspx
<%@ Page language="c#" Codebehind="addOrderID.aspx.cs" AutoEventWireup="false" Inherits="CommonFunction.addOrderID" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>addOrderID</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<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="GridLayout">
<form id="Form1" method="post" runat="server">
<h2>为DataGrid添加自动编号列</h2>
<asp:DataGrid id="dgAddOrderID" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 56px"
runat="server" ToolTip="第一列为添加的自动标识列" CellPadding="4" BackColor="White" BorderWidth="1px"
BorderStyle="None" BorderColor="#3366CC" Height="20px" Width="512px" AutoGenerateColumns="False"
ShowFooter="True">
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<Columns>
<asp:BoundColumn HeaderText="序号"></asp:BoundColumn>
<asp:BoundColumn DataField="LastName" HeaderText="姓名"></asp:BoundColumn>
<asp:BoundColumn DataField="FirstName" HeaderText="姓"></asp:BoundColumn>
<asp:BoundColumn DataField="BirthDate" HeaderText="出生年月" DataFormatString="{0:D}"></asp:BoundColumn>
<asp:BoundColumn DataField="City" HeaderText="城市"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
</form>
</body>
</HTML>
=================================================================
.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;
using System.Data.SqlClient;
using System.Configuration;
namespace CommonFunction
{
/// <summary>
/// addOrderID 的摘要说明。
/// </summary>
public class addOrderID : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgAddOrderID;

private void Page_Load(object sender, System.EventArgs e)
{
//页面初试化时进行数据绑定
if(!IsPostBack)
DataGridDataBind();
}

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

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

}
#endregion

private void AddOrderID(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//如果当前项不为空
if(e.Item.ItemIndex != -1 )
{
//取得当前项的索引值加1,因为项的索引值是从0开始的.
int orderID = e.Item.ItemIndex+1;
//设置第一列为的单元格内容为当前项索引值加1
e.Item.Cells[0].Text = orderID.ToString();
}
}

//进行数据绑定
private void DataGridDataBind()
{
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
//创建数据适配器对象
SqlDataAdapter da = new SqlDataAdapter("select LastName,FirstName,BirthDate,City from Employees",conn);
//创建DataSet对象
DataSet ds = new DataSet();
try
{
//填充数据集
da.Fill(ds,"testTable");
//进行数据绑定
dgAddOrderID.DataSource = ds.Tables["testTable"];
dgAddOrderID.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
}
}
}
yefeihaha 2005-11-23
  • 打赏
  • 举报
回复
-------- 在datagrid 前添加序号 ---------
<asp:TemplateColumn>
<ItemTemplate>
<%#(DataGrid1.CurrentPageIndex*DataGrid1.PageSize+DataGrid1.Items.Count+1)%>
</ItemTemplate>
</asp:TemplateColumn>
Richard_Hong 2005-11-23
  • 打赏
  • 举报
回复
1.加一个绑定列
2.在DataGrid控件的ItemDataBound事件中处理
//如果当前项不为空
if(e.Item.ItemIndex != -1 )
{
//取得当前项的索引值加1,因为项的索引值是从0开始的.
int orderID = e.Item.ItemIndex+1;
//设置第一列为的单元格内容为当前项索引值加1
e.Item.Cells[0].Text = orderID.ToString();
}
Baby_Happy 2005-11-23
  • 打赏
  • 举报
回复
首先在DataGrid中加入一个序号的模板列,然后在DataGrid的ItemDataBound事件中如此操作:

if (e.Item.ItemIndex >= 0)
{
intRecordCount = this.QDataGridProjectQuery.PageSize * this.QDataGridProjectQuery.CurrentPageIndex + e.Item.ItemIndex + 1;
//e.Item.Cells[i].Text = intRecordCount.ToString();
((Label)e.Item.Cells[i].FindContrl["Label1"]).Text = intRecordCount.ToString();
}
DeltaCat 2005-11-23
  • 打赏
  • 举报
回复
放在模板列里就OK 了
DeltaCat 2005-11-23
  • 打赏
  • 举报
回复
<%# Container.DataItem.ItemIndex %>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧