找回密码
 立即注册

QQ登录

只需一步,快速开始

CanYou1

高级会员

45

主题

227

帖子

1359

积分

高级会员

积分
1359

活字格认证微信认证勋章元老葡萄

CanYou1
高级会员   /  发表于:2015-9-1 14:39  /   查看:6751  /  回复:8
Alice,当一个C1DataGrid列表搜索数据但无匹配结果时,如何像下面这样在C1DataGrid列表体里面给个“暂无数据”提示?(这个问题很急,能不能马上帮忙看下?谢谢)

本帖子中包含更多资源

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

x

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-9-1 15:40:00
沙发
回复 1楼CanYou1的帖子

谢谢提供的图片。
很抱歉C1DataGrid无法支持添加一个无绑定的行展示数据。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-9-1 15:48:00
板凳
回复 2楼Alice的帖子

我正在尝试你们提供的Custom Rows功能,是不是可以从这里找到突破口?这个PDF解说有点简单了,弄得我去里雾里的,麻烦你也帮忙看看,是不是可以这样去做?


本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-9-1 16:52:00
地板
回复 3楼CanYou1的帖子

根据我的理解,它不能实现你的需求。
CustomRows可以对你的行的样式做自定义:包含创建的行,新行以及分组行等。
根据你1楼提到的,你在过滤后c1dataGrid是没有数据的,CustomRows是对数据进行展示的。
CustomRows的功能可以参考随机安装示例:
\Documents\ComponentOne Samples\WPF\C1.WPF.DataGrid\CS\DataGridSamples\Advanced\CustomRows
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-9-1 17:08:00
5#
回复 4楼Alice的帖子

CustomRows不行,那有没有什么别的办法能 实现我的需求呢?毕竟需求是很合理的啊
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-9-1 17:14:00
6#
回复 5楼CanYou1的帖子

你的需求是在数据绑定的时候添加非绑定的数据,因此C1DataGrid无法实现。
你添加的这个字段无法存到数据源的字段做对应。

有一个简单的但和C1DataGrid没有关系的方法,添加一个text控件展示文字,根据你过滤的情况,将这个控件隐藏或是展示出来。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-9-1 17:31:00
7#
回复 6楼Alice的帖子

没有数据这个简单啊,我可以在没数据时,造一条假数据,把其中一个字段值设成“暂无数据”就行。关键是如何把它展示到DataGrid里面。
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-9-1 17:41:00
8#
回复 6楼Alice的帖子

我试着用如下代码加在TopRows里面:
  1. Loaded += delegate
  2.             {
  3.                 DataGrid.TopRows.Add(new DataGridTemplateRow() { RowTemplate = (DataTemplate)Resources["TemplateRow"] });
  4.             };
复制代码


然后TemplateRow设成如下:
  1. <DataTemplate x:Key="TemplateRow">
  2.                 <Label Content="暂无数据" Style="{StaticResource Grid-Label}" Foreground="Red"/>
  3.             </DataTemplate>
复制代码


模仿你们C1案例写的一个自定义行:
  1. [ContentProperty("RowTemplate")]
  2.     public class DataGridTemplateRow : DataGridRow
  3.     {
  4.         protected override void OnLoaded()
  5.         {
  6.             base.OnLoaded();

  7.             IsEditable = false;
  8.         }

  9.         protected override object GetRowPresenterRecyclingKey()
  10.         {
  11.             return typeof(DataGridTemplateRowPresenter);
  12.         }

  13.         protected override DataGridRowPresenter CreateRowPresenter()
  14.         {
  15.             return new DataGridTemplateRowPresenter() { Content = RowTemplate.LoadContent() };
  16.         }

  17.         protected override void BindRowPresenter(DataGridRowPresenter presenter)
  18.         {
  19.             presenter.DataContext = DataItem;
  20.         }

  21.         protected override bool HasCellPresenter(DataGridColumn column)
  22.         {
  23.             return false;
  24.         }

  25.         public DataTemplate RowTemplate { get; set; }

  26.         private static Style rowStyle = null;

  27.     }
复制代码


已经能给列表加上一个自定义行,效果如下,只是文字“暂无数据”不显示,不知为何?

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-9-2 10:40:00
9#
回复 8楼CanYou1的帖子

根据你的提示,利用随机安装示例做了测试,测试结果如下:



灰色区域的文字是利用TopRows添加进去的。

随机安装示例路径:
\Documents\ComponentOne Samples\WPF\C1.WPF.DataGrid\CS\DataGridSamples\Advanced\CustomRows

对该示例修改如下:
1.在CustomRowsPage.xaml文件的<ResourceDictionary>节点中添加代码:
  1.   <DataTemplate x:Key="HeaderTemplateRow">
  2.                 <Grid Height="30">
  3.                     <TextBlock Text="It's empty" TextWrapping="Wrap" VerticalAlignment="Center"/>
  4.                 </Grid>
  5.             </DataTemplate>
复制代码

2.在CustomRowsPage.xaml.cs文件的构造方法中添加代码如下:
  1.             grid.TopRows.Add(new DataGridTemplateRow() { RowTemplate = (DataTemplate)Resources["HeaderTemplateRow"] });
复制代码


你可以参考以下示例查看你的代码。

本帖子中包含更多资源

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

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部