请问在DataGrid前怎么加个序号来表示是第几行啊? 不要告速我在表中建个自增的项ID.这个方案不要.我的想法是用一个模版列,lable.但我不知道怎么让Lable.Text 每行生成是自加一,各位高手给点代码吧~~~~

解决方案 »

  1.   

    <%# Container.DataItem.ItemIndex %>
      

  2.   

    首先在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();
    }
      

  3.   

    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();
    }
      

  4.   

    -------- 在datagrid 前添加序号         ---------
    <asp:TemplateColumn>
    <ItemTemplate>
    <%#(DataGrid1.CurrentPageIndex*DataGrid1.PageSize+DataGrid1.Items.Count+1)%>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  5.   

    .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());
    }
    }
    }
    }
      

  6.   

    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();
    }
    }