javascript - 如何在使用 javascript 的 ASP.NET 中单击日历并将日期复制到文本框而不进行回发?

标签 javascript asp.net textbox calendar postback

我有一个 asp.net 页面,用于搜索数据行。我希望能够搜索特定的日期间隔,因此我添加了两个日历(从和到),并为每个日历添加了一个文本框。

当在日历中选择日期时,它会显示在匹配的文本框中,尽管这会导致回发,这是我的问题。

我以前从未使用过 javascript,所以我想尝试一下,但我几乎只看到使用 HTML 的示例,而我根本没有使用 HTML。我只使用 ASP.NET Web 控件,例如 <asp:Calendar.../> .

所以下面的这段代码只是我的想法,我知道 JavaScript 是完全错误的,但我希望你在看到它时明白我想要实现的目标是什么。

<script type="text/javascript">
    function Calendar1_SelectionChanged() {
        FromDate.Text = Calendar1.SelectedDate.ToString();
    }
</script>    

<asp:Calendar ID="Calendar1" runat="server" 
    onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>

<asp:TextBox ID="FromDate" runat="server"></asp:TextBox>

非常感谢所有答案!我一直试图通过谷歌搜索找到这个问题的答案,但没有运气..

编辑:为了使其在页面上工作,我需要保留文本框。或者可以手动编辑日期的任何其他方式(以日期时间格式)

最佳答案

这里的问题是,当页面实际提供给浏览器时,它会与您在那里发布的内容发生变化。 onselectionchanged 事件不是 JavaScript 事件,它会进行回发以在服务器上调用 Calendar1_SelectionChanged 方法。尽管该函数看起来与 onselectionchanged 事件同名,但您的 JavaScript 代码并未运行。

我的建议是使用 jQuery datepicker .

我也不确定您的 javascript 是否完全按照您的预期工作。您似乎正在使用一些 C# 属性/方法...

关于javascript - 如何在使用 javascript 的 ASP.NET 中单击日历并将日期复制到文本框而不进行回发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6539303/

相关文章:

c# - 如何在文本框中获取选定的行?

swift - 在 Swift 中实现自动大写

c# - 文本框验证是否允许一个“。 ”值C#

javascript - 如何设置开始时间?

javascript - 阻止附加的html

asp.net - 不同路径的 Owin AuthenticationMode Active 和 Passive

asp.net - 禁用 Internet Explorer 8 开发人员工具

javascript - 多个 "inline"卷

javascript - 将输入类型文本转换为纯文本

asp.net - 为什么 Application_Start 在 Global.asax 中多次触发?