如何在RadGridView中创建行号列

时间:2014-07-07 12:07:00

标签: 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.Text))
    {
        e.CellElement.Value = e.CellElement.RowIndex + 1;
    }
}

但我的问题是,当我过滤网格时,我想要一个带过滤网格的新行号。

4 个答案:

答案 0 :(得分:1)

你在这里:

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

答案 1 :(得分:0)

当您过滤datagridview时,网格的数据源将发生变化,数据源将是DataView。 我认为你应该处理DataGridView.DataSourceChanged事件(http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.datasourcechanged(v=vs.110).aspx),然后遍历新的数据源并设置" RowNumber"的值。列。

答案 2 :(得分:0)

这个项目可以帮助您,它向您展示如何自定义行模板 http://www.codeproject.com/Articles/586132/WPF-DataGrid-Custommization-using-Style-and-Templa

答案 3 :(得分:0)

你去吧:

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