请问,有没有可能做到Datagridview绑定数据的同时,我在左边也动态的生成相应的行数,且这列可被我赋值
我是想做一个排名的程序,右边根据排序已经做出来,可是左边加不进去数字
谢谢

解决方案 »

  1.   

    private void DataGridView1_CellPainting(object sender,DataGridViewCellPaintingEventArgs e)
    {
        if (e.ColumnIndex < 0 && e.RowIndex >= 0)
        {        e.Paint(e.ClipBounds, DataGridViewPaintParts.All);
            Rectangle indexRect = e.CellBounds;
           indexRect.Inflate(-2, -2);
            TextRenderer.DrawText(e.Graphics,(e.RowIndex + 1).ToString(),e.CellStyle.Font,indexRect,e.CellStyle.ForeColor,TextFormatFlags.Right | TextFormatFlags.VerticalCenter);
            e.Handled = true;
        }
    }
      

  2.   

    private void DataGridView1_CellPainting(object sender,DataGridViewCellPaintingEventArgs e)
    {
        if (e.ColumnIndex < 0 && e.RowIndex >= 0)
        {        e.Paint(e.ClipBounds, DataGridViewPaintParts.All);
            Rectangle indexRect = e.CellBounds;
           indexRect.Inflate(-2, -2);
            TextRenderer.DrawText(e.Graphics,(e.RowIndex + 1).ToString(),e.CellStyle.Font,indexRect,e.CellStyle.ForeColor,TextFormatFlags.Right | TextFormatFlags.VerticalCenter);
            e.Handled = true;
        }
    }
      

  3.   

    在DataGridView的RowPostPaint事件中添加以下代码: 
    DataGridView DGV = sender as DataGridView; 
    Rectangle rec = new Rectangle(e.RowBounds.Location.X, 
                                  e.RowBounds.Location.Y, 
                                  DGV.RowHeadersWidth - 4, 
                                  e.RowBounds.Height); 
    TextRender.DrawText(e.Graphics, 
                      (e.RowIndex+1).ToString(), 
                        DGV.RowHeadersDefaultCellStyle.Font, 
                        rec, 
                        DGV.RowHeadersDefaultCellStyle.ForeColor, 
                        TextFormatFlags.VerticalCenter|TextFormatFlags.Right); 
      

  4.   

      <asp:TemplateField HeaderText="编号"> 
                        <ItemStyle Width="5%" HorizontalAlign="Center" />
                        <ItemTemplate > 
                        <%# this.GridView1.PageIndex  * this.GridView1.PageSize + Container.DataItemIndex + 1%> 
                        </ItemTemplate> 
                        </asp:TemplateField>
      

  5.   

    我们面的代码是经过测试的:        private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
            {
                DataGridViewRow row;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    row = dataGridView1.Rows[i];
                    row.HeaderCell.Value = (i + 1).ToString();
                }
            }
      

  6.   

    SQL SERVER2005里
    有 ROW_NUMBER()可以帮你快速实现。
      

  7.   


    你难道不知道这是winform吗?