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 重复的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 uitableview 单元格中放置一个 nsarray