Calendar.aspx.cs Cell.Text 重复
Posted
技术标签:
【中文标题】Calendar.aspx.cs Cell.Text 重复【英文标题】:Calendar.aspx.cs Cell.Text is duplicating 【发布时间】:2018-07-24 11:05:46 【问题描述】:我们正在尝试为我们的安装团队填充一个日历,该日历显示日历中每个日期的货车编号和安装时间查询中的不同值。我们有它,所以每个单元格中都有一个可点击的日期,它会在下面显示一个带有 Van # 和 Time 的文本字符串。然而这是重复的。
我们认为它是字符串,但如果我们构建相同的字符串并将其写入该单元格的工具提示,它会正确显示。因此,出于某种原因,它就是那个单元格文本。
以下是相关代码:
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 行,但单元格控件中的 Literal insta.Text 将显示两次。 Literal lit 似乎添加了可点击的 Date(我承认,我不知道它是如何做到的),这就是为什么有两个 Literal Controls 的原因。如果我们只写一个文字控件,那么我们会丢失可点击的日期,但安装数据仍然是重复的。
【问题讨论】:
【参考方案1】:经过更多测试,我们发现带有文本的控件被添加了两次。不知道为什么我们没有两次看到日期。但我们在这里找到了答案: https://forums.asp.net/t/453021.aspx?My+DayRender+event+is+happening+twice+and+I+don+t+know+why+
DayRender 事件触发了两次,因此删除
OnDayRender="Calendar1_DayRender"
从 ascx 页面中删除了多余的触发和文本仅显示一次。我仍然不确定为什么 Date 被添加到 lit 并且只有一次,但这似乎是在其他地方生成的并且可能占了。这也解释了 ToolTip 的工作原理,因为它是在添加控件的位置设置的。
【讨论】:
以上是关于Calendar.aspx.cs Cell.Text 重复的主要内容,如果未能解决你的问题,请参考以下文章