找回密码
 立即注册

QQ登录

只需一步,快速开始

popeer

新手上路

1

主题

2

帖子

27

积分

新手上路

积分
27
  • 25

    金币

  • 主题

  • 帖子

最新发帖
popeer
新手上路   /  发表于:2012-4-6 11:16  /   查看:6710  /  回复:3
使用c1datagrid自己的导出功能 c1DataGrid.Save()方法,生成的excel显示的内容中某些列内容为绑定的对象名称,而不是该列在c1datagrid中显示的内容。内容如下:
任务类别        子类别        系数
Plugin.LPM.SysManage.BindTaskClassSource                1
Plugin.LPM.SysManage.BindTaskClassSource                98
Plugin.LPM.SysManage.BindTaskClassSource        福德宫        98
Plugin.LPM.SysManage.BindTaskClassSource        客户服务        9888


背景描述:该dagagrid使用列绑定的方式生成的,其中某列(如列名为taskclassNAME)的使用的是列模板的方式绑定的,该列模板使用了ComboBox来显示编辑的内容, TextBlock来显示绑定的内容。
当该dagagrid导出到excel后,此列内容不是页面里显示在datagrid中的内容,而是绑定dagagrid的类型名称(如BindTaskClass).
代码如下:
   <c1:C1DataGrid Name="dgTaskCategory" Height="106" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
                               AutoGenerateColumns="False" c1:C1NagScreen.Nag="True" RowHeight="Auto" NewRowVisibility="Top"
                                   NewRowStyle="{StaticResource NewTaskClassRowStyle}"                                CommittingNewRow="dgTaskCategory_CommittingNewRow"                                CommittedNewRow="dgTaskCategory_CommittedNewRow"                                
                                CommittingRowEdit="dgTaskCategory_CommittingRowEdit" >
                        <c1:C1DataGrid.Columns>
                            <c1ataGridTextColumn Binding="{Binding ID, Mode=TwoWay, ValidatesOnDataErrors=True}"
                                               VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="Collapsed" />
                            <c1ataGridTemplateColumn HorizontalAlignment="Center" VerticalAlignment="Center" Name="TaskClassName" Header="任务类别" Width="250">
                                <c1ataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding TaskClassName, Mode=TwoWay}" HorizontalAlignment="Center"  VerticalAlignment="Center"></TextBlock>
                                    </DataTemplate>
                                </c1ataGridTemplateColumn.CellTemplate>

                                <c1ataGridTemplateColumn.CellEditingTemplate>
                                    <DataTemplate>
                                        <ComboBox x:Name="cbTaskClass" Loaded="cbTaskClass_Loaded"  Width="150"
                                              SelectedItem="{Binding  TaskClassName,Mode=TwoWay}" VerticalAlignment="Center"/>
                                    </DataTemplate>
                                </c1ataGridTemplateColumn.CellEditingTemplate>
                            </c1ataGridTemplateColumn>
</c1:C1DataGrid.Columns>
</c1:C1DataGrid>

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-4-6 14:50:00
沙发

回复 1# popeer 的帖子

popeer 你好,

请问你使用的是ComponentOne的哪个版本是ComponentOne for Silverlight 2011V3吗,能否做一个完整的Demo发给我们调试一下。谢谢。
回复 使用道具 举报
popeer
新手上路   /  发表于:2012-4-6 16:17:00
板凳
是2011-V3. sample给不了,不过我贴上去的代码足够做sample的了,您只需要给其绑定,再引用下c1.silverlight.datagrid.excel.dll,扩展下c1datagrid的方法就可以了。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-4-6 18:22:00
地板
这是C1自带Demo,演示了导出Excel的功能,你可以参考以下这种方法:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部