I have a RadGridView with a custom column:
<telerikGridView:RadGridView.Columns>
<telerikGridView:GridViewColumn Header="BatchStatus" UniqueName="NCD_Link">
<telerikGridView:GridViewColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="185"/>
<ColumnDefinition Width="125"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock x:Name="StatusDesc" FontFamily="Verdana" FontSize="12" FontWeight="Bold" Foreground="#FF1B109C" Margin="0, 0, 3, 5" Grid.Row="0" Grid.Column="0" Text="{Binding StatusDesc}" Grid.ColumnSpan="3" />
<TextBlock x:Name="FileName" FontFamily="Verdana" FontSize="10" Foreground="Black" Margin="0, 0, 50, 0" Grid.Row="1" Grid.Column="0" Text="{Binding ImportFileName}" />
<TextBlock x:Name="Cost" FontFamily="Verdana" FontSize="10" Foreground="Red" Margin="10, 0, 15, 0" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" Text="{Binding Cost, Converter={StaticResource MoneyConverter}, ConverterParameter=d}" />
<TextBlock x:Name="PostDate" FontFamily="Verdana" FontSize="10" Foreground="Green" Margin="10, 0, 26, 5" Grid.Row="1" Grid.Column="2" Text="{Binding PostDate, Converter={StaticResource DateConverter}, ConverterParameter=d}" />
</Grid>
</DataTemplate>
</telerikGridView:GridViewColumn.CellTemplate>
</telerikGridView:GridViewColumn>
</telerikGridView:RadGridView.Columns>
The issue is when I export, I get rows, but no cells. I've overridded the export function to actually 'create' string, but I don't get the 'cell' type, just the row type:
private void GridImportStatus_Exporting( object sender, Telerik.Windows.Controls.GridViewExportEventArgs e )
{
if( e.Element == Telerik.Windows.Controls.ExportElement.Row )
{
if( e.Value != null )
{
ServiceAsset.BatchImportStatusReport reportItem = e.Value as ServiceAsset.BatchImportStatusReport;
if( reportItem != null )
{
StringBuilder sb = new StringBuilder();
sb.Append( reportItem.StatusDesc + "<br/>" );
sb.AppendLine( reportItem.ImportFileName + "&tab;" +
String.Format( "{0:c}", reportItem.Cost ) + "&tab;" +
reportItem.PostDate.ToShortDateString() );
e.Value = "<td>" + sb.ToString() + "</td>";
}
}
}
}
so, what is the best way to get export to show a 'cell' of data, when I use a 'custom' data template?
-Don
<telerikGridView:RadGridView.Columns>
<telerikGridView:GridViewColumn Header="BatchStatus" UniqueName="NCD_Link">
<telerikGridView:GridViewColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="185"/>
<ColumnDefinition Width="125"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock x:Name="StatusDesc" FontFamily="Verdana" FontSize="12" FontWeight="Bold" Foreground="#FF1B109C" Margin="0, 0, 3, 5" Grid.Row="0" Grid.Column="0" Text="{Binding StatusDesc}" Grid.ColumnSpan="3" />
<TextBlock x:Name="FileName" FontFamily="Verdana" FontSize="10" Foreground="Black" Margin="0, 0, 50, 0" Grid.Row="1" Grid.Column="0" Text="{Binding ImportFileName}" />
<TextBlock x:Name="Cost" FontFamily="Verdana" FontSize="10" Foreground="Red" Margin="10, 0, 15, 0" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" Text="{Binding Cost, Converter={StaticResource MoneyConverter}, ConverterParameter=d}" />
<TextBlock x:Name="PostDate" FontFamily="Verdana" FontSize="10" Foreground="Green" Margin="10, 0, 26, 5" Grid.Row="1" Grid.Column="2" Text="{Binding PostDate, Converter={StaticResource DateConverter}, ConverterParameter=d}" />
</Grid>
</DataTemplate>
</telerikGridView:GridViewColumn.CellTemplate>
</telerikGridView:GridViewColumn>
</telerikGridView:RadGridView.Columns>
The issue is when I export, I get rows, but no cells. I've overridded the export function to actually 'create' string, but I don't get the 'cell' type, just the row type:
private void GridImportStatus_Exporting( object sender, Telerik.Windows.Controls.GridViewExportEventArgs e )
{
if( e.Element == Telerik.Windows.Controls.ExportElement.Row )
{
if( e.Value != null )
{
ServiceAsset.BatchImportStatusReport reportItem = e.Value as ServiceAsset.BatchImportStatusReport;
if( reportItem != null )
{
StringBuilder sb = new StringBuilder();
sb.Append( reportItem.StatusDesc + "<br/>" );
sb.AppendLine( reportItem.ImportFileName + "&tab;" +
String.Format( "{0:c}", reportItem.Cost ) + "&tab;" +
reportItem.PostDate.ToShortDateString() );
e.Value = "<td>" + sb.ToString() + "</td>";
}
}
}
}
so, what is the best way to get export to show a 'cell' of data, when I use a 'custom' data template?
-Don