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

时间:2016-07-22 03:11:40

标签: c# sorting gridview devexpress

首先,我在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;
    }
}

输出或结果是:

index column

问题是当我点击任何列标题中的排序时,如何使索引或idx列值变为静态。正如你所看到的,当我点击流派标题时,值跟随数据库中的代码或索引,我想让它像0中的自动编号一样,每当我保持点击类型的列标题或任何东西时:

enter image description here

1 个答案:

答案 0 :(得分:1)

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

以下是示例:

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