找回密码
 立即注册

QQ登录

只需一步,快速开始

PTC_Learner

初级会员

9

主题

33

帖子

281

积分

初级会员

积分
281
PTC_Learner
初级会员   /  发表于:2020-2-19 14:21  /   查看:6000  /  回复:17
感谢大家,有个问题需要请教一下,
如图中点击红色框内的日期,焦点默认在六月1号内,有什么属性能获取当前点击的这个日期吗,或者能获取点击的日期不在当前显示日历范围内的状态属性?





本帖子中包含更多资源

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

x

17 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-2-24 15:56:03
18#
不客气
回复 使用道具 举报
PTC_Learner
初级会员   /  发表于:2020-2-24 14:55:43
17#
Richard.Ma 发表于 2020-2-24 14:42
没错,这样应该是这样的,我这边也测试过了
保证显示在界面上的日期,都砸设置的日期内就没有问题了

感谢您的回复,动态处理,问题已经解决!
非常感谢!!!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-2-24 14:42:52
16#
没错,这样应该是这样的,我这边也测试过了
保证显示在界面上的日期,都砸设置的日期内就没有问题了

在你这里可以设置成5.27  到6.30

评分

参与人数 1满意度 +5 收起 理由
PTC_Learner + 5 很给力!

查看全部评分

回复 使用道具 举报
PTC_Learner
初级会员   /  发表于:2020-2-24 11:55:42
15#
Richard.Ma 发表于 2020-2-24 09:02
如果是这个是你需要的功能的话,那我前面发你的代码就可以,按照这两句代码就可以判断选择的日期是不是在当 ...

您好,版主,目前没有别的属性状态能获取到,
我想到了一个解决方式,我猜想应该是与以下两个属性有关系:
c1Schedule1.CalendarInfo.FirstDate = Convert.ToDateTime("2019-06-01");
c1Schedule1.CalendarInfo.LastDate = Convert.ToDateTime("2019-06-30");
所以将显示的月份需要计算一下,第一周显示的是几月几号,最后一周显示的是几月几号,
然后重新设置一下属性;
例如,
//六月份的第一周的第一天是5月26:
c1Schedule1.CalendarInfo.FirstDate = Convert.ToDateTime("2019-05-26");
//六月份最后一周的最后一天是7月6号
c1Schedule1.CalendarInfo.LastDate = Convert.ToDateTime("2019-07-06");

我试试,应该可以。
回复 使用道具 举报
PTC_Learner
初级会员   /  发表于:2020-2-24 11:14:02
14#
本帖最后由 PTC_Learner 于 2020-2-24 11:18 编辑
Richard.Ma 发表于 2020-2-24 09:02
如果是这个是你需要的功能的话,那我前面发你的代码就可以,按照这两句代码就可以判断选择的日期是不是在当 ...

您好,非常感谢您的回复!
对于您提供的代码,我又试了一下,还是获取不到点击的日期,跟版本有关系吗?你能发一下您测试的样例吗,非常感谢!!!我测试代码如下:
1.Form1_Load事件中添加如下代码:
           c1Schedule1.CalendarInfo.FirstDate = Convert.ToDateTime("2019-06-01");
           c1Schedule1.CalendarInfo.LastDate = Convert.ToDateTime("2019-06-30");
2.增加c1Schedule1_SelectedIntervalChanged事件:
           //当前界面显示的所有日期
            var dates = c1Schedule1.SelectedDates;
            //当前日期的月份
            var currentmonth = c1Schedule1.CurrentDate.Month;
            //当前选择的日期的月份
            var selectmonth = c1Schedule1.SelectedInterval.Start.Month;
            MessageBox.Show(e.Interval.Start.ToShortDateString());




本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-2-24 09:02:41
13#
如果是这个是你需要的功能的话,那我前面发你的代码就可以,按照这两句代码就可以判断选择的日期是不是在当月


  1.             //当前日期的月份
  2.             var currentmonth = c1Schedule1.CurrentDate.Month;
  3.             //当前选择的日期的月份
  4.             var selectmonth = c1Schedule1.SelectedInterval.Start.Month;
复制代码
回复 使用道具 举报
PTC_Learner
初级会员   /  发表于:2020-2-21 19:03:45
12#
本帖最后由 PTC_Learner 于 2020-2-21 19:23 编辑
Richard.Ma 发表于 2020-2-21 11:32
您能发我一个示例项目过来吗,我这里测试可能更快一些

另外你这样设置的目的是什么呢?是要解决什么问题

您好,版主,是这样,为了页面效果,日历是一个月份一个月份展示,所以就设置了开始时间和结束时间的属性。
但在处理的时候,只能点哪个日期处理哪个日期,但现在发现会出现如帖子的问题。想要的效果是,点击不是当月的日期时不处理,但目前没有一个属性能获取到这个状态。
附件中是我的测试代码。


十分感谢!


本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-2-21 11:32:18
11#
您能发我一个示例项目过来吗,我这里测试可能更快一些

另外你这样设置的目的是什么呢?是要解决什么问题
回复 使用道具 举报
PTC_Learner
初级会员   /  发表于:2020-2-21 09:40:17
10#
Richard.Ma 发表于 2020-2-20 15:52
我这里测试完全没有问题,在点击1月和3月时也可以正常获取点击的日期

版主,你好,感谢你的回复!
我尝试了更改属性显示日历的月份为多个月份,能达到您测试的效果。
但是我想要实现的效果是,日历只显示一个月份,我设置了如下属性:
            c1Schedule1.CalendarInfo.FirstDate = Convert.ToDateTime("2019-06-01");
            c1Schedule1.CalendarInfo.LastDate = Convert.ToDateTime("2019-06-30");
然后再测试就是一开始我测试的效果,点5月份的日期,获取的都是6月1号的日期。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部