找回密码
 立即注册

QQ登录

只需一步,快速开始

sherclock

初级会员

34

主题

77

帖子

259

积分

初级会员

积分
259
sherclock
初级会员   /  发表于:2019-5-23 11:31  /   查看:6838  /  回复:12
C1FlexGrid  ,对表格筛选后做下拉填充,未被筛选的行也会被填充,怎么能实现未被筛选的行不被填充,谢谢。




12 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-5-23 14:07:00
沙发
你说的下拉填充是指给 编辑器为下拉框的列 来填充数据吗,如果直接赋值的话应该不会出现你说的情况

建议你把代码打包发上来我看一下你是如何做的
回复 使用道具 举报
sherclock
初级会员   /  发表于:2019-5-27 15:53:19
板凳
本帖最后由 sherclock 于 2019-5-27 15:54 编辑

你好,
      图一为原始数据
      图二为我按产品类型筛选为2的数据,并对物料名称列,做下拉填充。
      图三为 ,下拉填充后的数据,产品类型为3的物料名称列也变了,我筛选的是产品类型为2的数据,但是为3的在下拉填充时也变了,能不能实现为3的不变呢。




本帖子中包含更多资源

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

x
回复 使用道具 举报
sherclock
初级会员   /  发表于:2019-5-27 15:55:34
地板
Richard.Ma 发表于 2019-5-23 14:07
你说的下拉填充是指给 编辑器为下拉框的列 来填充数据吗,如果直接赋值的话应该不会出现你说的情况

建议 ...

麻烦你帮忙看一下,谢谢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-5-28 09:34:20
5#
还是没看明白,为什么图二筛选后物料名称列的值是“下拉填充,”

我理解你现在就是想光把筛选后的产品类型2的数据填充为“下拉填充”
只是现在其他的产品类型的行也被改变了,是这样吗

我得具体看你是怎么用代码填充的,麻烦将项目打包发上来我帮你验证一下
回复 使用道具 举报
sherclock
初级会员   /  发表于:2019-5-28 17:12:04
6#
Richard.Ma 发表于 2019-5-28 09:34
还是没看明白,为什么图二筛选后物料名称列的值是“下拉填充,”

我理解你现在就是想光把筛选后的产品类 ...

你的理解是对的,我用的是你们自带的功能,参考你们提供的例子做的。你们应该有这个程序包吧

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-5-28 18:20:57
7#
哈哈,我理解的有点偏差,我以为说的下拉是说单元格编辑器绑定的是下拉框

那你那边可以看到代码,实际上设置数据的就是这一句,这个会给cellrange的TopRow到BottomRow的所有行更新数据,你需要做的就是修改这句
  1. rg.Data = startCell.Data;
复制代码


如果需要只给过滤后的行更新数据,可以分别给过滤后显示的视图的每行分别的设置单元格值。


回复 使用道具 举报
sherclock
初级会员   /  发表于:2019-5-29 08:57:48
8#
Richard.Ma 发表于 2019-5-28 18:20
哈哈,我理解的有点偏差,我以为说的下拉是说单元格编辑器绑定的是下拉框

那你那边可以看到代码,实际上 ...

亲人,我怎么知道数据有没有别筛选呢,有没有个例子参考一下啊
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-5-29 13:51:27
9#
是否被筛选可以通过判断行是否可见,如果是false那就不要赋值就好了

  1.                     foreach(Row row in fg.Rows){
  2.                         bool cellvisiable = row.Visible;
  3.                     }
复制代码
回复 使用道具 举报
sherclock
初级会员   /  发表于:2019-5-29 17:58:29
10#
Richard.Ma 发表于 2019-5-29 13:51
是否被筛选可以通过判断行是否可见,如果是false那就不要赋值就好了


例子中是通过如下赋值的,这是按区域块赋值的,
C1.Win.C1FlexGrid.CellRange rg = this.Selection;
rg.Data = startCell.Data;



我怎么循环我要赋值的的区域,让他不符值呢,例如如下,当然下面的例子是错误的


                    foreach (Row item in Selection)
                    {
                        if (item.Visible == true )
                        {
                          筛选的赋值
                        }
                    }

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