C# 如何在RadGridView中创建行号cloumn
我有一个带有一些行的RadGridView,但我需要一个行号列。我用这个代码来做:C# 如何在RadGridView中创建行号cloumn,c#,winforms,telerik,radgridview,C#,Winforms,Telerik,Radgridview,我有一个带有一些行的RadGridView,但我需要一个行号列。我用这个代码来做: private void GridViewOrder_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e) { if (e.CellElement.ColumnInfo.Name == "RowNumber" && string.IsNullOrEmpty(e.CellElement.
private void GridViewOrder_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
if (e.CellElement.ColumnInfo.Name == "RowNumber" && string.IsNullOrEmpty(e.CellElement.Text))
{
e.CellElement.Value = e.CellElement.RowIndex + 1;
}
}
但我的问题是,当我过滤网格时,我想在过滤后的网格中有一个新的行号。当您过滤datagridview时,网格的数据源将发生变化,数据源将是DataView。
我认为您应该处理DataGridView.DataSourceChanged事件(),然后循环新的数据源并设置“RowNumber”列的值。这个项目可以帮助您,它向您展示了如何自定义行模板 给你:
void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.CellElement.ColumnInfo.Name == "DecimalColumn" )
{
Console.WriteLine(radGridView1.ChildRows.IndexOf(e.Row));
e.CellElement.Text = (e.CellElement.RowIndex + 1).ToString();
}
}
好了:
<telerik:GridTemplateColumn HeaderText="#" UniqueName="RowNumber">
<HeaderStyle Width="3%" Height="25px" HorizontalAlign="Center" Font-Bold="true">
</HeaderStyle>
<ItemStyle Height="35px" HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" ID="lblRowNumber" Text='<%# Container.DataSetIndex+1 %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
谢谢,但我使用的是radgridview telerik网格,它没有数据源更改事件您可以在数据源中添加一列(行号),然后在过滤网格后,您应该在数据视图(新数据源)中更新此列的值。