繁体   English   中英

如何在gridview中显示行号

[英]How to display row number in 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);
     }

将行号字段添加到DataTable

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

希望这可能有所帮助。 :)

注意:我没有测试过这段代码。

多谢你们! 我找到了答案。 我做的事情就是在行索引和第一列更新单元格

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM