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