加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何确定ASP.NET日历显示的整个日期范围?

发布时间:2020-12-16 03:40:22 所属栏目:asp.Net 来源:网络整理
导读:ASP.NET日历始终在7×6网格中显示6周的日期.我的问题是目标月份的第一天不一定出现在第一行……在某些情况下,整个第一行显示上个月的日期.在其他情况下,整个最后一行显示下一行的日期. 是否有可靠的方法来查询日历对象以确定特定月/年的42天范围? 例如,考虑
ASP.NET日历始终在7×6网格中显示6周的日期.我的问题是目标月份的第一天不一定出现在第一行……在某些情况下,整个第一行显示上个月的日期.在其他情况下,整个最后一行显示下一行的日期.
是否有可靠的方法来查询日历对象以确定特定月/年的42天范围?

例如,考虑2008年6月和2009年2月:

Notice that the first week contains ONLY dates from prior month http://img371.imageshack.us/img371/2290/datesmq5.png

我假设日历试图避免在网格的顶部或底部聚集所有“其他月份”日期,因此将第一个目标月份放在第二行.我正在寻找一种简单的方法来确定2008年6月的显示范围是5月25日 – 7月5日.

解决方法

查看ASP.NET日历控件公开的公共成员,我不相信这些信息是您可以从日历控件获得的信息.

虽然不是很好,但你有一些选择作为“变通办法”……但它们会起作用.

>您可以手动计算第一周的值
>您可以处理“day render”事件来处理各个日期的绑定,并记录最小/最大值.

既不优雅,但AFAIK是唯一真正的选择

编辑

在评论中讨论后,另一个选项是我上面第二个选项的修改版本.基本上第一次调用Day Render时,获取接下来42天的数据块,然后您只需在列表中搜索正确的日值,以便在将来调用DayRender时显示,从而避免每天的数据库命中.这样做是另一个“非优雅”的解决方案,但它可以工作,并减少了DB上的一些负载,但在应用程序方面引入了一些开销.

在此处定义结构良好的页面级别属性以在绑定事件期间保存项目非常重要,但要确保如果一个月更改等,则表明未正确加载等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读