我想在 c#.net 中生成日历以输入每日出勤率。我在 web 中使用 jquery 日历用于类似目的。有什么方法可以创建日历控件并获取点击事件来标记和显示其中的值。
谢谢
示例图片:
我想在 c#.net 中生成日历以输入每日出勤率。我在 web 中使用 jquery 日历用于类似目的。有什么方法可以创建日历控件并获取点击事件来标记和显示其中的值。
谢谢
示例图片:
如果您有预算,我肯定会选择Telerik 的 Scheduler Control 之类的商业组件。该系列的价格为 999 美元,我以前从未使用过 Telerik 的控件,所以我自己不能推荐它们,但从长远来看,如果您可以在其他项目中重用这些组件,从长远来看它可能是非常值得的。
如果这不是一个选项,那么像您的示例这样简单的东西将很容易自己滚动。我主要在 WinForms 中工作,所以这就是我构建表单的方式:
FlowLayoutPanel
并设置Dock
为Fill
. 这将包含“日”控件,这些控件将从左到右、从上到下流动。现在您需要使用代码,而不是设计器。这可能在构造函数、Page_Load
处理程序或在设置(或初始化)月份/年份时调用的某个地方完成:
FlowLayoutControl
填充月初。您可以找出要添加的数量,new DateTime(year, month, 1).DayOfWeek
以找到该月的第一天。空面板应设置为与“天”控件相同的大小。day
控件。FlowLayoutControl
用于DateTime.DayInMonth(year, month)
查找所选月份的天数,并在添加时将每个“天”控件设置为日期(可能还有输入/输出数据)。flowLayoutControl.Items.Clear()
设置代码。这应该会产生一个可以动态显示任何月份的控件。要添加考勤编辑功能,请在“日”控件或日历控件本身中设置Click
处理程序(当您将“日”控件FlowLayoutControl
添加到/out 选定日期的时间。
如果您希望日控件动态调整大小,请为包含控件的Resize
事件注册,并将每天控件的宽度和高度设置为Math.Floor(control.Width / 7)
(七天宽)和Math.Floor(control.Height / 5)
(五周高)或类似的东西。
据我所知,市场上没有标准的时间表控制。我建议你看看 DevExpress 的XtraSchedule控件。