我们正在尝试为我们的安装团队填充日历,该日历显示了来自货车号码的查询的不同值,并在日历中的每个日期上安装时间。我们拥有它,因此每个单元格中都有一个可单击的日期,在下面,文本字符串随货车#和时间显示。但是这是重复的。
我们认为这是字符串,但是如果我们制作相同的字符串并将其写入该单元格的工具提示,则将正确显示。因此,这是出于某种原因。
这是相关代码:
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
String Install = "";
String ToolTip = "";
Literal insta = new Literal();
Literal lit = new Literal();
e.Cell.BackColor = System.Drawing.Color.SkyBlue;
var rows = (from row in socialEvents.AsEnumerable()
where DateTime.Parse(row["InstallDate"].ToString()) >= e.Day.Date &&
DateTime.Parse(row["InstallDate"].ToString()) < e.Day.Date.AddDays(1)
select new
{
VanNum = row["VanNum"],
InstallTime = row["InstallTime"]
}).Distinct();
foreach (var row in rows)
{
String MyInstall = "";
MyInstall = "Van #: " + row.VanNum.ToString() + " / Install Time: " + row.InstallTime.ToString();
Install = Install + "<br/>" + MyInstall;
ToolTip = ToolTip + "/n" + MyInstall;
}
e.Cell.ToolTip = ToolTip;
lit.Visible = true;
e.Cell.Controls.Add(lit);
insta.Text = Install;
insta.Visible = true;
e.Cell.Controls.Add(insta);
}
e.cell.tooltip将显示3行,但是单元格控件中的文字Insta.Text将显示两次。字面的点燃似乎正在添加可单击的日期(我承认,我不知道它是怎么做到的(,这就是为什么有两个字面控制。如果我们只编写一个文字控件,那么我们将失去可点击的日期,但安装数据仍会重复。
测试更多后,我们发现带有文本的控件添加了两次。不知道为什么我们也没有看到两次日期。但是我们在这里找到了答案:https://forums.asp.net/t/453021.aspx?my dayrender event happen happening twice and and don ter ter knows knows knows why why
日光里的活动正在开火两次,所以删除
OnDayRender="Calendar1_DayRender"
从ASCX页面上删除了冗余射击,并且文本仅显示一次。我仍然不确定为什么将日期添加到点亮,只有一次,但这似乎是在其他地方生成的,并且可能是为了。这也解释了工具提示的工作,因为它在添加控件的位置设置了。