【问题标题】:ASP.NET c# increase date value by number days on each button clickASP.NET c#在每个按钮单击时按天数增加日期值
【发布时间】:2016-05-24 13:04:34
【问题描述】:

我看了这里,但我找不到我想做的事。

我只是有一个按钮的 onclick 事件,我想在每次单击按钮时将标签的日期值增加任意天数。 所以可以说这个数字是 2 天。如果当我单击按钮时标签的当前值为 2016 年 5 月 1 日,则它应该是 2016 年 5 月 3 日,如果再次是 2016 年 5 月 5 日,依此类推。我可以让它在第一次点击时更新一次,但不能在第二次点击时更新。这是我的代码

protected void NDateOn_Click(object sender, EventArgs e)
    { 
      lblCurrentDate.Text = DateTime.Today.AddDays (2).ToString ("dd");
    }

我知道它与“今天”有关,但我不知道从这里开始做什么 感谢您提前提供任何帮助。

【问题讨论】:

  • “我知道它与“今天”有关“ - 嗯,是的 - 您每次都将天数添加到“今天”。将结果存储在某个地方,这样您就可以不断增加天数。
  • lblCurrentDate.Text = convert.ToDatetime(lblCurrentDate.Text)+DateTime.Today.AddDays (2).ToString ("dd"); ..像这样的东西

标签: c# asp.net


【解决方案1】:

问题是您每次都在 TODAY 的日期上增加 2 天。您要做的是将 2 添加到已存储在那里的日期。你会想做这样的事情(警告:没有尝试编译这个)。

lblCurrentDate.Text = DateTime.Parse(lblCurrentDate.Text).AddDays(2).ToString("MM/DD/YYYY");

传递给ToString() 的参数格式化日期时间。您可以对其进行修改以获得不同的格式。如果您只想存储日期而不是月/年,那么您可能需要做更多的工作。希望这会有所帮助。

【讨论】:

  • 必须测试你的代码,它会给你System.FormatException: String was not recognized as a valid DateTime.
  • @Ansari 我想如果你的字符串格式不正确的话。 Here's an example 编译运行正常。
【解决方案2】:

你需要维护viewstate中的数据,每个按钮点击增加2

  protected void Button1_Click(object sender, EventArgs e)
        {            
            if (ViewState["datacount"] == null)
            {
                ViewState["datacount"] = 0;
            }
            ViewState["datacount"] = ((int)ViewState["datacount"]) + 2;
            Label1.Text = DateTime.Today.AddDays((int)ViewState["datacount"]).ToString("dd");
        }

希望对你有帮助

注意:viewstate数据只能在同一个页面维护,可以在多个页面维护

【讨论】:

  • Prasad -- 这很好用。老实说,我没有考虑过使用视图状态。 --谢谢!
  • 我的荣幸博士
猜你喜欢
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 2016-09-28
相关资源
最近更新 更多