请问,如何在DataGrid中的第一列实现自动编号,但是,必须是按照倒序自动编号??急!  
谢谢!

解决方案 »

  1.   

    在Datagrid html中加 <asp:TemplateColumn HeaderText="编号">
    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle"></HeaderStyle>
    <ItemStyle HorizontalAlign="Right" VerticalAlign="Middle"></ItemStyle>
    <ItemTemplate>
    <asp:Label runat="server" Text='vvv' ID="Label6" />
    </ItemTemplate>
    </asp:TemplateColumn>
    在itemDataBound 事件中加入
    public void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {   //生成编号
    if ( e.Item.ItemIndex<0 ) return;
    Label tb = (Label)e.Item.FindControl("Label6");
    int bh=DataGrid1.Items.Count-(DataGrid1.PageSize * DataGrid1.CurrentPageIndex + e.Item.ItemIndex + 1);
    tb.Text = bh.ToString();
     }
      

  2.   

    好,coat()说的方法,还是不能实现自动倒序排列啊!请高手再帮我看看!
      

  3.   

    二、倒序的方法 序号
     内容
     
    4  Taye
     
    3  BOx
     
    2  Glass
     
    1  StarCraft
     由上面可以知道使用
    this.DataGrid1.Items.Count - Container.ItemIndex + 1方法是不可能实现的,得到值而且全会为1
    分页的情况下更是一样.所以一开始我们就要取得数据源的行数 .cs
     
                 private int rowscount = 0;         protected int RowsCount         {              get{ return rowscount;}              set{ this.rowscount = value; }         }              private void Page_Load(object sender, System.EventArgs e)         {              // 在此处放置用户代码以初始化页面              if(!IsPostBack)                   this.BindData();         }          private void BindData()         {              SqlConnection cn = new SqlConnection("server=(local);database=NorthWind;uid=sa;pwd=");              string str=@"SELECT Employees.EmployeeID, Orders.EmployeeID                                 FROM Employees INNER JOIN                       Orders ON Employees.EmployeeID = Orders.EmployeeID ";               SqlDataAdapter sqlda = new SqlDataAdapter(str,cn);              DataSet ds = new DataSet();               sqlda.Fill(ds);               this.RowsCount = ds.Tables[0].Rows.Count;               this.DataGrid1.DataSource = ds;              this.DataGrid1.DataBind();          }
     .aspx
     
    <asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">                            <Columns>                                   <asp:TemplateColumn>                                          <ItemTemplate>                                                 <%# RowsCount - DataGrid1.CurrentPageIndex * DataGrid1.PageSize - Container.ItemIndex %>                                          </ItemTemplate>                                   </asp:TemplateColumn>                            </Columns>                     </asp:DataGrid>