【【【日历问题,高分相送,急得很啊】】】

wszhoho 2007-05-25 08:34:33
private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
{
//Response.Write(Calendar1.SelectedDate.ToString("yyyy-MM-dd"));//语句1
Response.Redirect(Request.CurrentExecutionFilePath+"?Cdate="+Calendar1.SelectedDate.ToString("yyyy-MM-dd"),true);//语句2
}
一个根据点选时间来选择记录的程序,很简单。
当屏蔽语句2 执行语句1 的时候,可以正确Write出今天的日期,
当屏蔽语句1 执行语句2 的时候,无法得到今天的日期,其他任意一天的可以得到。
也就是说你点击今天的日期,页面好像不执行一样,Calendar1.SelectedDate还是上一次点击的日期。

page_load里面有这两句
if(!this.IsPostBack)
{
Calendar1.DayNameFormat=DayNameFormat.Full;
Calendar1.SelectedDate=DateTime.Now;
}
...全文
535 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
wszhoho 2007-05-25
  • 打赏
  • 举报
回复
加载xml文件错误,请跟斑竹联系!!请斑竹生成以下社区的贴子列表!!
roomid:5202
typenum:2

我晕啊,结贴了,各位还是0分,对不住了。
wszhoho 2007-05-25
  • 打赏
  • 举报
回复
算了,不管了,让服务器慢慢比较去吧,这样应该是没有什么好办法了,结贴啦,谢谢大伙~~
chuxue1342 2007-05-25
  • 打赏
  • 举报
回复
强人!
michaelowenii 2007-05-25
  • 打赏
  • 举报
回复
不同颜色


protected void calAlertInfo_DayRender(object sender, DayRenderEventArgs e)
{
CalendarDay d = e.Day;
TableCell c = e.Cell;
c.ToolTip = d.Date.ToString("yyyy-MM-dd");

if (dtabInfo != null)
{
if (dtabInfo.Rows.Count != 0)
{
DataRow[] drowInfo = dtabInfo.Select("AlertDate like '%" + d.Date.ToString("yyyy-MM-dd") + "%'");
for (int i = 0; i < drowInfo.Length; i++)
{
string s = drowInfo[i]["Caption"].ToString();
string hm = DateTime.Parse(drowInfo[i]["AlertDate"] + "").ToString("HH:mm");
string strUrl = "AlertInfoEdit.aspx?ID=" + drowInfo[i]["ID"];
System.Web.UI.WebControls.HyperLink MyLink = new System.Web.UI.WebControls.HyperLink();

MyLink.NavigateUrl = "javascript:var r = window.showModalDialog('" + strUrl + "','obj','dialogWidth=460px;dialogHeight=300px');if (r=='refresh'){parent.MainFrame.location.href =parent.MainFrame.location.href;};";
MyLink.Text = "<br/><div align='left'><img src='images/tip.gif' border=0></img>" + hm + s + "</div>";
MyLink.Width = 150;
e.Cell.BackColor = System.Drawing.Color.CadetBlue;
e.Cell.Controls.Add(MyLink);
}
}
}

if (dtabInfoBirthday != null)
{
if (dtabInfoBirthday.Rows.Count != 0)
{
DataRow[] drowInfoBirthday = dtabInfoBirthday.Select("MonthDay like '%" + d.Date.ToString("MM-dd") + "%'");
for (int i = 0; i < drowInfoBirthday.Length; i++)
{
string s = drowInfoBirthday[i]["Name"].ToString() + "生日";
System.Web.UI.WebControls.HyperLink MyLink = new System.Web.UI.WebControls.HyperLink();
MyLink.Text = "<br/><div align='left'><img src='images/Birthday.gif' border=0></img>" + s + "</div>";
MyLink.Width = 150;
e.Cell.BackColor = System.Drawing.Color.Coral;
e.Cell.Controls.Add(MyLink);
}
}


}
}
wszhoho 2007-05-25
  • 打赏
  • 举报
回复
private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
if(!this.IsPostBack)
{
string[] array=getallday();
for(int i=0;i<array.Length;i++)
{
if(e.Day.Date.ToString("yyyy-MM-dd")==array[i])
e.Cell.BackColor=Color.Coral;
}
}
}

要命了,这个代码有问题吗? 跟踪了一下,中间的代码执行了n次,虽然能得到正确的结果,但是,效率好低。
ken_flash 2007-05-25
  • 打赏
  • 举报
回复
顺便问一下,我从数据库里搜索出了日期,怎么使日历上对应的日期显示不同的颜色?
---------------------------
private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
if(e.Day.Date == YourDate)
{
e.Cell.BackColor = Color.Red;
}
}
guohua2208 2007-05-25
  • 打赏
  • 举报
回复
ding
amandag 2007-05-25
  • 打赏
  • 举报
回复
private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
if(e.Day.Date < DateTime.Now)
{
e.Cell.BackColor = Color.FromName("Orange");
}
}
wszhoho 2007-05-25
  • 打赏
  • 举报
回复
主要用到Calendar1的哪个属性可以设置颜色的?Style?
jinanjiang 2007-05-25
  • 打赏
  • 举报
回复
up
jordon110 2007-05-25
  • 打赏
  • 举报
回复
if(!ISPostBack)没用。。。。。
amandag 2007-05-25
  • 打赏
  • 举报
回复
再从数据库里搜索出了所有日期,可以通过for语句使日历上对应的日期显示不同的颜色吗?
=====================================================================================
可以,在DayRender事件可以做处理
wszhoho 2007-05-25
  • 打赏
  • 举报
回复
if(!IsPostBack)确实没有用,去掉了~
再 从数据库里搜索出了所有日期,可以通过for语句使日历上对应的日期显示不同的颜色吗?
谢谢各位了!!!
babyrockxray 2007-05-25
  • 打赏
  • 举报
回复
你用Redirect来进行页面切换,所以每次跳回本页都会执行if(!IsPostBack)里面的初始化,
将日期设置为今天
我感觉你的Cdate没有用啊。。。应该要判断是否为空,如果不为空就设置为这个日期
wszhoho 2007-05-25
  • 打赏
  • 举报
回复
Calendar1.SelectedDate=DateTime.Now;去了就好了,谢谢“高歌”同学。
再 从数据库里搜索出了所有日期,可以通过for语句使日历上对应的日期显示不同的颜色吗?
hanguoji84 2007-05-25
  • 打赏
  • 举报
回复
看看他的:amandag(高歌) UP下
wszhoho 2007-05-25
  • 打赏
  • 举报
回复
1. ?是中文的,改成?

2.你的Page_Load已经有了
Calendar1.SelectedDate=DateTime.Now;

所以再去选日期的时候如果选中的是本日是不会触发Calendar1_SelectionChanged事件的

否则你连着两次点同一天的日期看看,第二次也是不触发的

==========================================
是的。
伴老思源 2007-05-25
  • 打赏
  • 举报
回复
跟踪下看看
amandag 2007-05-25
  • 打赏
  • 举报
回复
1. ?是中文的,改成?

2.你的Page_Load已经有了
Calendar1.SelectedDate=DateTime.Now;

所以再去选日期的时候如果选中的是本日是不会触发Calendar1_SelectionChanged事件的

否则你连着两次点同一天的日期看看,第二次也是不触发的

weizhuangzhi 2007-05-25
  • 打赏
  • 举报
回复
怀疑可能是Response.Redirect跳转了多次,而你没有感觉到,要单步跟踪一下
加载更多回复(8)

62,046

社区成员

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

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

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

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