2017-05-08 59 views
1

我使用下面的代码,但它没有工作..它没有显示与该字段列。如何在gridview中显示行号

<asp:TemplateField> 
    <ItemTemplate> 
    <%# Container.DataItemIndex + 1 %> 
    </ItemTemplate> 
</asp:TemplateField> 

我在代码后面添加我的其他列和meaby这是问题吗?

OleDbDataAdapter sqlArchiveData = new OleDbDataAdapter(sql_archive); 

    DataTable dt = new DataTable(); 
    connProdcc1.Open(); 
    sqlArchiveData.Fill(dt); 

foreach (DataColumn column in dt.Columns) 
     { 
      BoundField field = new BoundField(); 
      field.DataField = column.ColumnName; 
      field.HeaderText = column.ColumnName.Replace("_"," "); 
      field.SortExpression = column.ColumnName; 
      AggregateGridView.Columns.Add(field); 
     } 
AggregateGridView.DataSource = dt; 
     AggregateGridView.DataBind(); 

环己酮是否有任何想法如何做到这一点的其他方式?

我尝试这个喜欢以下,但它的所有数据后计算我的行数我Fill()DataTable,然后添加到各行的数量

 DataColumn columnIndexRow = new DataColumn(); 
    columnIndexRow.DataType = System.Type.GetType("System.Int32"); 
    columnIndexRow.ColumnName = "id"; 
    dt.Columns.Add(columnIndexRow); 

    for (int i = 0; i < dt.Rows.Count; i++) 
    { 
     // your index is in i 
     var row = dt.NewRow(); 
     row["id"] = i; 
     dt.Rows.Add(row); 
    } 

回答

0

谢谢你们!我只是找出答案。我做一些更新行索引处的单元格和第一列

 for (int i = 0; i < dt.Rows.Count; i++) 
    { 
     dt.Rows[i][0] = i; 
    } 
0

添加行号字段,以数​​据表

OleDbDataAdapter sqlArchiveData = new OleDbDataAdapter(sql_archive); 

DataTable dt = new DataTable(); 
connProdcc1.Open(); 
sqlArchiveData.Fill(dt); 

dt = AutoNumberedTable(dt); 

foreach (DataColumn column in dt.Columns) 
{ 
    BoundField field = new BoundField(); 
    field.DataField = column.ColumnName; 
    field.HeaderText = column.ColumnName.Replace("_"," "); 
    field.SortExpression = column.ColumnName; 
    AggregateGridView.Columns.Add(field); 
} 
AggregateGridView.DataSource = dt; 
AggregateGridView.DataBind(); 


private DataTable AutoNumberedTable(DataTable SourceTable) 
{ 
    DataTable ResultTable = new DataTable(); 
    DataColumn AutoNumberColumn = new DataColumn(); 
    AutoNumberColumn.ColumnName="S.No."; 
    AutoNumberColumn.DataType = typeof(int); 
    AutoNumberColumn.AutoIncrement = true; 
    AutoNumberColumn.AutoIncrementSeed = 1; 
    AutoNumberColumn.AutoIncrementStep = 1; 
    ResultTable.Columns.Add(AutoNumberColumn); 
    ResultTable.Merge(SourceTable); 
    return ResultTable; 
} 

希望这可能有帮助。 :)

注:我还没有测试过这个代码。