我有一些带有行的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;
}
}
但我的问题是,当我过滤网格时,我想要一个带过滤网格的新行号。
答案 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>