业务的需求是:在日历上给出日期段,用户再从日期段中选择日期。
由于本人能力不强,只好调用MS的日历,并加上了以下属性:
private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
HtmlInputCheckBox cb = new HtmlInputCheckBox();
cb.ID = calID+"_chkDate";
cb.Name = calID+"_chkDate";
cb.Value = strDate(e.Day.Date.ToString().Trim()); if(availBeginDate != "" && availEndDate != "")//日期段
{
TimeSpan ts = DateTime.Parse(availEndDate.ToString().Trim()) - DateTime.Parse(availBeginDate.ToString().Trim()); for(int i=0;i<ts.Days+1;i++)
{
if(e.Day.Date == DateTime.Parse(availBeginDate.ToString().Trim()).AddDays(i))
{
e.Cell.Controls.Add(cb);
} } } }
问题就来了,日历所有事件都要回送服务器,我的页面不允许回送服务器。
我就想如果我的日历只显示日期段并保留日历的样式,就不需要翻到下月了,也就不需要任何作点击日历的动作了。
不知道能否有更好的解决多选日期的日历?
由于本人能力不强,只好调用MS的日历,并加上了以下属性:
private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
HtmlInputCheckBox cb = new HtmlInputCheckBox();
cb.ID = calID+"_chkDate";
cb.Name = calID+"_chkDate";
cb.Value = strDate(e.Day.Date.ToString().Trim()); if(availBeginDate != "" && availEndDate != "")//日期段
{
TimeSpan ts = DateTime.Parse(availEndDate.ToString().Trim()) - DateTime.Parse(availBeginDate.ToString().Trim()); for(int i=0;i<ts.Days+1;i++)
{
if(e.Day.Date == DateTime.Parse(availBeginDate.ToString().Trim()).AddDays(i))
{
e.Cell.Controls.Add(cb);
} } } }
问题就来了,日历所有事件都要回送服务器,我的页面不允许回送服务器。
我就想如果我的日历只显示日期段并保留日历的样式,就不需要翻到下月了,也就不需要任何作点击日历的动作了。
不知道能否有更好的解决多选日期的日历?
还要postback干嘛?
因为日期段可能跨月份,需要翻到下月。
我现在就是想日历只加载日期段,而不需要整年整月的日历,这样就不用翻到下月了。
if(e.Day.Date.Year.Equals(int.Parse(date[0].ToString()+date[1].ToString()+date[2].ToString()+date[3].ToString())) && e.Day.Date.Month.Equals(int.Parse(date[6].ToString())) && e.Day.Date.Day.Equals(int.Parse(date[9].ToString())))
{
e.Day.IsSelectable = true;
}
这是什么意思啊
是个不错的反编译器,你down下来看看能不能看到人家的代码.