Schedule.aspx页面有一个日期控件,在它的DayRender事件中出现一个这样的错误,在每一天单元格中会出现两个新增按钮,然后天干记年法表示的字符窜也是两个,加载的改天信息也是显示两一样的,实际数据库中只有一条记录,不知是怎么回事!
public void calSchedule_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
CalendarDay d = ((DayRenderEventArgs)e).Day;
TableCell c = ((DayRenderEventArgs)e).Cell;
CNDate dt = new CNDate(d.Date); 
if (d.IsOtherMonth) 
{
c.Controls.Clear();
}
else 
{
try
{
HyperLink aHyperLink = new HyperLink();
aHyperLink.ImageUrl = "../img/add_small.gif";
aHyperLink.ToolTip = "新增个人日程";
aHyperLink.NavigateUrl = "schaddup.aspx?reurl=schedule.aspx&day="+d.Date.ToShortDateString();
c.Controls.Add(new LiteralControl(" "+" "+" "+" ")); 
c.Controls.Add(aHyperLink); 
c.Controls.Add(new LiteralControl("<br>"+dt.FormatLunarYear()));
}
catch (Exception exc) 
{
Response.Write(exc.ToString());
}
DateTime FDate = new DateTime();
string Subject;
SqlCommand objcommand = new SqlCommand();
SqlDataReader objdatareader;  
DateTime Date = new DateTime();
Date = d.Date;
ScheduleDA scheduleDadaAccess = new ScheduleDA();
objcommand = scheduleDadaAccess.SchRead(Convert.ToInt16(this.Empid),Date);
objcommand.Connection.Open();
objdatareader=objcommand.ExecuteReader();
try
{
while(objdatareader.Read())
{
int ID = Int32.Parse(objdatareader.GetInt32(1).ToString());
FDate = DateTime.Parse(objdatareader.GetSqlDateTime(2).ToString());
string FDate_hour = FDate.Hour.ToString();
string FDate_Minute = FDate.Minute.ToString();
if(FDate_Minute == "0")
{
FDate_Minute = "00";
}
Subject = objdatareader.GetValue(0).ToString();
if(Subject.Length > 4)
{
Subject = Subject.Substring(0,4);
Subject += ".."; 
}
HtmlAnchor a = new HtmlAnchor();
a.HRef = "schaddup.aspx?reurl=schedule.aspx&id="+ID+"&day="+d.Date.ToShortDateString();
a.InnerText = "☉"+FDate_hour+":"+FDate_Minute+" "+Subject+"";
c.Controls.Add(new LiteralControl("&nbsp;"+"&nbsp;"+"&nbsp;"+"&nbsp;")); 
c.Controls.Add(new LiteralControl("<br>")); 
c.Controls.Add(a); 
c.Controls.Add(new LiteralControl("<br>")); 
}
objdatareader.Close();
objcommand.Connection.Close();
}
catch(Exception exc) 
{
Response.Write(exc.ToString());
}
}
e.Cell.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#fff7ce';cursor='hand';";
e.Cell.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#ffffff';";

解决方案 »

  1.   

    好象不是吧,我在一个项目里用这里的代码了,但我改了一点,把天干记年法全部取掉了,因为上面我是要显示日程标题的,好象没有遇到你所说的问题,给分吧,我代码发给你?
    [email protected]
      

  2.   

    public void calSchedule_DayRender(object sender, DayRenderEventArgs e) 
    {
    CalendarDay d = ((DayRenderEventArgs)e).Day;
    TableCell c = ((DayRenderEventArgs)e).Cell;
    //CNDate dt = new CNDate(d.Date); 
    if (d.IsOtherMonth) 
    {
    c.Controls.Clear();
    }
    else 
    {
    try
    {
    HyperLink aHyperLink = new HyperLink();
    aHyperLink.ImageUrl = "../img/add_small.gif";
    aHyperLink.ToolTip = "新增个人日程";
    aHyperLink.NavigateUrl = "schaddup.aspx?reurl=schedule.aspx&day="+d.Date.ToShortDateString();
    c.Controls.Add(new LiteralControl("&nbsp;"+"&nbsp;"+"&nbsp;"+"&nbsp;")); 
    c.Controls.Add(aHyperLink); 
    //c.Controls.Add(new LiteralControl("<br>"+dt.FormatLunarYear()));
    }
    catch (Exception exc) 
    {
    Response.Write(exc.ToString());
    }
    DateTime FDate = new DateTime();
    string Subject;
    SqlCommand objcommand = new SqlCommand();
    SqlDataReader objdatareader;  
    DateTime Date = new DateTime();
    Date = d.Date;
    ScheduleDA scheduleDadaAccess = new ScheduleDA();
    objcommand = scheduleDadaAccess.SchRead(Session["userName"].ToString(),Date);
    objcommand.Connection.Open();
    objdatareader=objcommand.ExecuteReader();
    try
    {
    while(objdatareader.Read())
    {
    int ID = Int32.Parse(objdatareader.GetInt32(1).ToString());
    FDate = DateTime.Parse(objdatareader.GetSqlDateTime(2).ToString());
    string FDate_hour = FDate.Hour.ToString();
                            string FDate_Minute = FDate.Minute.ToString();
    if(FDate_Minute == "0")
    {
    FDate_Minute = "00";
    }
    Subject = objdatareader.GetValue(0).ToString();
    if(Subject.Length > 4)
    {
    Subject = Subject.Substring(0,4);
    Subject += ".."; 
    }
    HtmlAnchor a = new HtmlAnchor();
    a.HRef = "schaddup.aspx?reurl=schedule.aspx&id="+ID+"&day="+d.Date.ToShortDateString();
    a.InnerText = "☉"+FDate_hour+":"+FDate_Minute+" "+Subject+"";
    c.Controls.Add(new LiteralControl("&nbsp;"+"&nbsp;"+"&nbsp;"+"&nbsp;")); 
    c.Controls.Add(new LiteralControl("<br>")); 
    c.Controls.Add(a); 
    c.Controls.Add(new LiteralControl("<br>")); 
    }
    objdatareader.Close();
    objcommand.Connection.Close();
    }
    catch(Exception exc) 
    {
    Response.Write(exc.ToString());
    }
    }
    e.Cell.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#fff7ce';cursor='hand';";
    e.Cell.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#ffffff';";
    }
      

  3.   

    大家帮帮我啊,急着用啊,救命!!!Help me!!
      

  4.   

    大家帮帮我啊,急着用啊,救命!!!Help me!!救命!!!Help me!!救命!!!Help me!!救命!!!Help me!!救命!!!Help me!!救命!!!Help me!!我再顶