日期/时间控制 asp.net

Posted

技术标签:

【中文标题】日期/时间控制 asp.net【英文标题】:Date / time control asp.net 【发布时间】:2014-03-24 15:59:29 【问题描述】:

我有一个网络表单应用程序,它计算两个日期之间的时间差,然后 以天数、总小时数、总分钟数的格式返回。

我的标记代码如下:

<asp:Label ID="Label20" runat="server" CssClass="label">Resolved Date</asp:Label>
<asp:TextBox ID="TextBox14" runat="server" CssClass="textbox"      TextMode="Date" OnTextChanged="TextBox14_TextChanged"></asp:TextBox>

现在 ontextchanged 事件将计算与另一个日期时间文本框的时间差。

我做过这样的事情:。

protected void TextBox14_TextChanged(object sender, EventArgs e)

    // get date from first text box

    DateTime dold = Convert.ToDateTime(TextBox1.Text);
    DateTime dnew = Convert.ToDateTime(TextBox14.Text);
    TimeSpan daydif = (dnew - dold);
    double dayd = daydif.TotalDays;
    Label27.Text = dayd.ToString();

我的问题是,每当没有输出时? label27 没有天数的差异。

还有其他我不知道的事件触发器吗?

感谢您的帮助。

【问题讨论】:

“但我的问题是,每当它没有输出时?”是什么意思? "但是我的问题是,每当没有输出的时候呢?",只需添加一个String.IsNullOrEmpty检查并在标签中显示一个默认值? 你需要发起一个回发到服务器,否则服务器上的代码永远不会运行。尝试将AutoPostBack="True" 添加到&lt;asp:TextBox&gt; 有什么理由不使用日历控件? msdn.microsoft.com/en-us/library/… 【参考方案1】:

我同意 Jon Skeet 我会为此目的使用日历控件,您将遇到文本字段的输入验证问题,您正在使用 Date 对象的日历。首先,您可以将日历字段添加到页面。

<!-- Old Date -->
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
<!-- New Date -->
<asp:Calendar ID="Calendar2" OnSelectionChanged="TextBox14_TextChanged" runat="server"></asp:Calendar>

然后在您的 onchanged 方法中,您可以像这样在 1 行中计算时间跨度,创建另一个对象 double 来保存您可以像这样访问它的总天数是没有意义的。除非您要在很多地方使用它,否则可能会创建一个持有人替身。

protected void TextBox14_TextChanged(object sender, EventArgs e)
    
        //Might add some quick validation to make sure a date is selected in both calendars.
        // Not sure if you are subtracting old from new or new from old but you can sorta that out
        Label20.Text = ((TimeSpan)(Calendar2.SelectedDate - Calendar1.SelectedDate)).TotalDays.ToString();
    

请记住,当调用 onselection 更改时,页面正在刷新,因为必须将数据提交到页面才能进行服务器端处理。网页事件不像 winform 那样工作。

【讨论】:

以上是关于日期/时间控制 asp.net的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET入门教程(经典)

ASP.NET入门教程(经典)

kindEditor

KindEditor编辑器

KindEditor

编辑器KindEditor的使用