百分求助,急!关于Infragistics的WebMonthView的使用

yulitian 2006-07-27 05:09:16
ASP.Net(C#)使用Infragistics控件包实现“个人工作计划管理”功能。

由于WebMonthView控件(包括配合使用的WebScheduleInfo控件)封装了一定的业务逻辑(逻辑很僵硬,讨厌的家伙),而我只需要借助其实现日历的大块列表显示效果,使用点击弹出的网页实现业务逻辑。所以,我使用这样的代码进行操作:

/// <summary>
/// 获取并绑定当前用户的日程安排
/// </summary>
/// <returns></returns>
private bool GetBindDailySchedule()
{
//获取日程安排
DataSet DailySchedule_DS = new DataSet();
bool temp_Result = GetDailySchedule(ref DailySchedule_DS);
if(temp_Result == false)
{
return false;
}
//绑定日程安排


//禁止使用全天事件
//WebScheduleInfo1.AllowAllDayEvents=false;
//到时是否自动弹出提示窗口
//WebScheduleInfo1.EnableReminders=false;


for(int i=0;i<DailySchedule_DS.Tables[0].Rows.Count;i++)
{

//生成日历项目(活动安排)对象
Infragistics.WebUI.WebSchedule.Appointment appt = new Infragistics.WebUI.WebSchedule.Appointment (WebScheduleInfo1);



//主键字段绑定
appt.DataKey = DailySchedule_DS.Tables[0].Rows[i]["Schedule_Id"];
//和上面一样
appt.Key=DailySchedule_DS.Tables[0].Rows[i]["Schedule_Id"].ToString();
//活动安排标题
appt.Subject = DailySchedule_DS.Tables[0].Rows[i]["Schedule_Title"].ToString();
//活动安排内容
appt.Description= DailySchedule_DS.Tables[0].Rows[i]["Schedule_Content"].ToString();
//活动开始时间
appt.StartDateTime = Infragistics.WebUI.Shared.SmartDate.Parse(DailySchedule_DS.Tables[0].Rows[i]["Execute_Date"].ToString());

//Response.Write(DailySchedule_DS.Tables[0].Rows[i]["Execute_Date"].ToString()+"   "+appt.StartDateTime.ToString() +"<br>");

//活动结束时间
appt.EndDateTime = Infragistics.WebUI.Shared.SmartDate.Parse(DailySchedule_DS.Tables[0].Rows[i]["Execute_Date"].ToString()).AddMinutes(30);



DateTime TomorrowDate = new DateTime (DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day+1,0,0,10);
DateTime TodayDate = new DateTime (DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,0,0,0);
DateTime ApptDate = new DateTime (Convert.ToDateTime(DailySchedule_DS.Tables[0].Rows[i]["Execute_Date"]).Year,Convert.ToDateTime(DailySchedule_DS.Tables[0].Rows[i]["Execute_Date"]).Month,Convert.ToDateTime(DailySchedule_DS.Tables[0].Rows[i]["Execute_Date"]).Day,0,0,0);


//活动持续显示的时间
if(ApptDate.CompareTo(TodayDate) <0 )
{
//已经过去时间的事件
appt.Duration =new TimeSpan(0,30,0);// new TimeSpan(30,0,0,0);TodayDate-ApptDate;
appt.Status=Infragistics.WebUI.WebSchedule.ActivityStatus.Normal;//Expired,Normal
appt.Visible=true;

}
else if (ApptDate.CompareTo(TodayDate) == 0 )
{
//今天的事件
appt.Duration = TomorrowDate-Convert.ToDateTime(DailySchedule_DS.Tables[0].Rows[i]["Execute_Date"]);//只显示1天
}
else
{
//尚未发生的事件
appt.Duration = new TimeSpan(0,30,0);
}


//是否全天事件
//appt.AllDayEvent=false;
//到时是否自动弹出提示窗口
//appt.EnableReminder=false;
//重要级别
//appt.Importance=Infragistics.WebUI.WebSchedule.Importance.High;


appt.ResourceKey = this.WebScheduleInfo1.VisibleResources.UnassignedResource.Key;

//添加
WebScheduleInfo1.Activities.Add(appt);

}

return true;
}


实质就是循环生成工作安排项目,Add到日历中显示而已
但是问题就出现了,过去的时间无法显示事件。


就是中间的appt.Duration用来控制显示时间。
将来的时间发生的安排,Duration设置成任何数字都可以显示,当天的事件必须设置成小于一天的TiamSpan,而过去的时间则无法显示。

强行使用很大的Duration将会导致计划任务事件项目连续在多天内出现


不知道哪位大哥能帮忙解决一下?
一百分求助,先谢谢啦~~~~~~~~~~
...全文
290 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kknd2005 2006-07-28
  • 打赏
  • 举报
回复
说过吧,自己用ASP的方式搞一个,其实还快些的
kknd2005 2006-07-28
  • 打赏
  • 举报
回复
嘿嘿,JF
yulitian 2006-07-28
  • 打赏
  • 举报
回复
绝望的最后一顶~~~~
yulitian 2006-07-27
  • 打赏
  • 举报
回复
绝望的Up中~~~~
yulitian 2006-07-27
  • 打赏
  • 举报
回复
帮助文档确实很详细,但是,我没有找到需要的部分啊

真是可怕的东东~~~~

继续Up,期待高手帮忙啊
amendajing 2006-07-27
  • 打赏
  • 举报
回复
这个控件以前用过,看看它的帮助文件,里面讲的还详细的,只不过全英文的看起来有点吃力!
yulitian 2006-07-27
  • 打赏
  • 举报
回复
Up,Up!
高手帮忙啊
yulitian 2006-07-27
  • 打赏
  • 举报
回复
楼上的,顺手把这个帖子也帮顶一下吧“关于日历控件的问题”(http://community.csdn.net/Expert/topic/4909/4909607.xml)

我在回复的时候粘贴代码太长,又不能连续回三张以上的帖子
greki 2006-07-27
  • 打赏
  • 举报
回复
这么长,帮顶先

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧