找回密码
 立即注册

QQ登录

只需一步,快速开始

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

另外你这样设置的目的是什么呢?是要解决什么问题
回复 使用道具 举报
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-24 09:02:41
13#
如果是这个是你需要的功能的话,那我前面发你的代码就可以,按照这两句代码就可以判断选择的日期是不是在当月


  1.             //当前日期的月份
  2.             var currentmonth = c1Schedule1.CurrentDate.Month;
  3.             //当前选择的日期的月份
  4.             var selectmonth = c1Schedule1.SelectedInterval.Start.Month;
复制代码
回复 使用道具 举报
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
回复 使用道具 举报
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");

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

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

评分

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

查看全部评分

回复 使用道具 举报
PTC_Learner
初级会员   /  发表于:2020-2-24 14:55:43
17#
Richard.Ma 发表于 2020-2-24 14:42
没错,这样应该是这样的,我这边也测试过了
保证显示在界面上的日期,都砸设置的日期内就没有问题了

感谢您的回复,动态处理,问题已经解决!
非常感谢!!!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-2-24 15:56:03
18#
不客气
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部