0
我正在更改DayRender控件中单个单元格的背景颜色,但是当选择其他日期时,我为单元格选择的背景颜色会丢失。我环顾四周,无法真正找到我所需要的。希望代码能够让我的代码更清晰一些。当选择新日期时,DayRender单元格更改丢失
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{String sFullDate, sTradacomsDate;
XmlNode node;
sFullDate = e.Day.Date.Day.ToString("00") + "/" + e.Day.Date.Month.ToString("00") + "/" + e.Day.Date.Year.ToString();
sTradacomsDate = e.Day.Date.Year.ToString().Substring(2,2) + e.Day.Date.Month.ToString("00") + e.Day.Date.Day.ToString("00");
if (xmlDoc != null)
{
node = xmlDoc.SelectSingleNode("Dates/dbo.ASNs[FileDate = '" + sFullDate + "']");
if (node != null)
{
e.Cell.BackColor = System.Drawing.Color.YellowGreen;
e.Cell.ForeColor = System.Drawing.Color.White;
}
}
if (xmlDoc2 != null)
{
node = xmlDoc.SelectSingleNode("Dates/dbo.Orders[DateOrderPlaced = '" + sTradacomsDate + "']");
if (node != null)
{
if (e.Cell.BackColor == System.Drawing.Color.Green)
{
e.Cell.BackColor = System.Drawing.Color.Orange;
e.Cell.ForeColor = System.Drawing.Color.White;
}
else
{
e.Cell.BackColor = System.Drawing.Color.Blue;
}
}
}
感谢您的回复,我已将enableviewstate设置为true,但日期更改时背景颜色仍会恢复为默认背景颜色。 – Redseven 2011-05-09 14:14:40
你能发布更多源代码吗?例如,您确定在回发期间xmlDoc和xmlDoc2不为空吗?在Page_Load中有if(!IsPostBack)是很常见的 - 你是否这样做,以便假定Calendar1_DayRender的数据源没有正确设置?您是否调试过并设置了一个断点以确保if块在回发期间按预期运行? – 2011-05-09 14:28:32
Ahh我很愚蠢,我的xmldocuments在重新加载时为null,因为它们被封装在!isPostBack中,就像你提到的那样。 谢谢! – Redseven 2011-05-09 14:34:08