如何使新添加的未绑定列值自动编号变为静态?

How to make the new added unbound column value auto number become static?

首先,我在 GridView 中创建了一个未绑定的列(使用 DevExpress):

public void buttonl_Click(object sender, EventArgs e)
{
    //GridColumn clmn = gridaaa.Columns["code"];

    if (gridaaa.Columns.ColumnByFieldName("idx") != null)
    {
        gridaaa.Columns.ColumnByFieldName("idx").Dispose();
    }



    GridColunn unbColumn2 = gridaaa.Columns.AddField("idx");
    unbColumn2.VisibleIndex = gridaaa.Columns.Count;
    unbColumn2.UnboundType = DevExpress.Data.UnboundColumnType.Integer;
    //// Disable editing.
    unbColumn2.OptionsColunn.AllowEdit = false;
    // gridaaa.Columns.ColumnByFieldName("idx").Dispose();
}

gridView1_CustomUnboundColumnData事件中我使用了这段代码

private void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e)
{

    if (e.Column.FieldName == "idx")
    {
        e.Value = e.ListSourceRowIndex;
    }
}

输出或结果是:

问题是当我在任何列中单击排序时如何使索引或 idx 列值变为静态 header。正如您所看到的,当我单击 genre header 时,该值跟随数据库中的代码或索引,每当我继续单击 genre 的列 header 或任何内容时,我想让它像从 0 开始的自动编号:

您可以使用ColumnView.GetRowHandle方法获取当前行的句柄,它总是从上到下反映到GridView中行的位置。

示例如下:

private void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e)
{
    if (e.Column.FieldName == "idx")
        e.Value = gridView1.GetRowHandle(e.ListSourceRowIndex);
}