首先,我在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列值变为静态。正如你所看到的,当我点击流派标题时,值跟随数据库中的代码或索引,我想让它像0中的自动编号一样,每当我保持点击类型的列标题或任何东西时:
答案 0 :(得分:1)
您可以使用ColumnView.GetRowHandle
方法获取当前行的句柄,该句柄始终反映到GridView
中行的位置,从上到下。
以下是示例:
private void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e)
{
if (e.Column.FieldName == "idx")
e.Value = gridView1.GetRowHandle(e.ListSourceRowIndex);
}