在我的页面上,我有:
txtCalendar
,asp:TextBox
用于输入日期,附带JQuery datepicker
btnSave
,asp:Button
保存表单btnAdd
,asp:LinkButton
,可为页面的其他部分打开新表单。如果点击任一按钮,则在调用txtCalendar_TextChanged
或btnSave_Click
函数之前调用 {em}。单击这些按钮时,根本不应调用btnAdd_Click
- 在或之后。
JQuery txtCalendar_TextChanged
可能会以某种方式导致这种情况发生 - 当我注释掉实例化datepicker
并将其绑定到文本框的代码时,datepicker
不是叫。
此外,我已经确认:
txtCalendar_TextChanged
脚本运行,单击按钮时仍会调用$(function() {}
方法txtCalendar_TextChanged
或#btnSave
的JavaScript或任何可以匹配/回复这些ID的内容#btnAdd
的{{1}}是我的sender
文本框txtCalendar_TextChanged
txtCalendar
为空(不确定这是否重要)
eventargs
中的文字实际上没有变化(在UI中直观地验证,而不是通过在后端添加代码来检查)txtCalendar_TextChanged
时,txtCalendar
被 调用 被txtCalendar_TextChanged
调用,不知何故...... 。)OnTextChanged='txtCalendar_TextChanged'
,也会调用txtCalendar
即使我通过注释掉txtCalendar_TextChanged
来禁用AutoPostBack='true'
功能,也会调用txtCalendar_TextChanged
(两个按钮都使用aspx.vb中的btnSave_Click
而不是Handles btnSave.Click
在aspx中)Handles btnX.Click
在OnClick="btnX_Click"
之前被点击,但第一次检查是Page_Load
- txtCalendar_TextChanged
的其余部分未运行(因此 - 其他后端功能未被点击)答案 0 :(得分:0)
解决:
在vb.net中,我使用myDate.ToShortDateString
在txtCalendar
中设置初始值。 ToShortDateString
格式化日期不带前导零,而datepicker
的默认格式确实有前导零
实例化datepicker
时,它会更改txtCalendar
中的日期格式,但由于这是通过代码完成的,因此不会触发回发。当用户单击按钮并触发回发时,由于新的日期格式(文本字符串已更改),也会触发txtCalendar_TextChanged
。
将datepicker
的{{1}}更改为dateFormat
解决了问题。