使用 c# 清除日期

Clearing date using c#

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

这是日期在

中的原始盒子

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

当我清除开始日期的结束日期时 returns

我就是这样清除日期的

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

单击后进入 get/set 值并运行以下代码

            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;
            }

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

我也尝试过使用 JavaScript 来做到这一点,但是,ID 不是完全生成的服务器端,所以我只能得到它的一部分,出于某种原因,如果我使用 guid 并设置当页面执行 post 返回时,id 生成为静态,它会更改 guid,这似乎会将日期文本框中的值恢复为原始值。

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

有没有人有任何关于从文本框中清除日期的方法的建议,这些日期会保留 post 返回。我已经尝试在文本框上启用视图状态和禁用视图状态。

当在日历扩展器的选定值内设置值时,文本框、日历扩展器和工具提示捆绑在一个控件中,它会 return 它在 post 后面,因为这个不需要,因为文本框将保留当前值,因此更容易从日历扩展程序中清除所选值,或者更好的是在页面构建操作期间完全省略设置它。我把它彻底去掉了,解决了原值被保留的问题