【问题标题】:Clearing date using c#使用 c# 清除日期
【发布时间】:2021-08-12 17:05:15
【问题描述】:

我在清除日期文本框时遇到问题。每当我回帖时,日期就会返回。我尝试了多种方法来清除主要调用内部库的日期控件的日期控件,添加一个清除服务器端的清除按钮。我还尝试使用相同的清除按钮使用 JavaScript 清除客户端。无论我使用什么方法,原始日期都会返回到框中。这会在保存页面时导致验证错误。

这是带有日期的原始框

如果我清除开始日期,它就会消失

当我清除结束日期时,开始日期返回

这就是我清除日期的方式

protected void ClearDate(object sender, EventArgs e)
{
    this.Value = string.Empty;
}

点击后进入获取/设置值并运行以下代码

            if (value == null || value == string.Empty)
            {
                _dateTextBox.Text = "";
                if (ShowSeconds)
                    _timeTextBox.Text = "00:00:00";
                else
                    _timeTextBox.Text = "00:00";
                _altTextBox.Text = "";
                _calExtender.SelectedDate = null;
            }

问题是,当我更改一个日期框的值然后清除另一个日期框时,更改后的值返回到前一个值,它似乎与日历扩展器有关。似乎无论我经过多少次,日历扩展器都会保留原始值。

我也尝试使用 JavaScript 来执行此操作,但是 ID 不是完全在服务器端生成的,因此我只能获取其中的一部分,并且由于某种原因,如果我使用 guid 并将 id 生成设置为静态时每当页面回发它会更改 guid,这似乎会将日期文本框中的值恢复为原始值。

function clearDateTextBox(dateTextBoxId) {
    document.getElementById(dateTextBoxId).value = "";
}

有没有人对如何从文本框中清除日期以保留回发有任何建议。我已经尝试在文本框上启用视图状态和禁用视图状态。

【问题讨论】:

    标签: javascript c# asp.net date ascx


    【解决方案1】:

    作为文本框,日历扩展器和工具提示捆绑在一个控件中,当在日历扩展器的选定值中设置值时,它将在回发时返回它,因为这不是必需的,因为文本框将保存当前value 更容易从日历扩展器中清除选定的值,或者更好地在页面构建操作期间完全忽略设置它。完全去掉,解决了原值被保留的问题。

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2023-03-17
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多