这个开始困扰我,谷歌搜索似乎并没有为我提供工作结果。
我在 ASP.NET 文本框上有一个 JQueryUI 日历,当按钮导致回发时,它总是清除文本。
以下 Javascript 创建日历
<script language="javascript" type="text/javascript">
$(function () {
$('#TextBoxDatePicker').datepicker({
changeMonth: true,
changeYear: true,
showOn: 'both',
buttonImage: '../images/cal16.gif',
buttonImageOnly: true
});
$('#TextBoxDatePicker').datepicker({ dateFormat: 'dd/MM/y' });
$('#TextBoxDatePicker').datepicker('option', 'dateFormat', 'dd/MM/y');
$('#TextBoxDatePicker').datepicker({ yearRange: '1900:2323' });
$('#TextBoxDatePicker').datepicker('option', 'maxDate', '0');
$('#TextBoxDatePicker').datepicker('option', 'minDate', '-90y');
$('#TextBoxDatePicker').datepicker('option', 'yearRange', '1900:2323');
});
</script>
<asp:TextBox ID="TextBoxDatePicker" runat="server" ClientIDMode="Static"></asp:TextBox>
而且我在 Page_Load 方法上也有以下内容
ScriptManager.RegisterStartupScript(this.ButtonRegister, typeof(string), "CalendarScript", @"
$(function () {
$('#TextBoxDatePicker').datepicker({
changeMonth: true,
changeYear: true,
showOn: 'both',
buttonImage: '../images/cal16.gif',
buttonImageOnly: true
});
$('#TextBoxDatePicker').datepicker({ dateFormat: 'dd/MM/y' });
$('#TextBoxDatePicker').datepicker('option', 'dateFormat', 'dd/MM/y');
$('#TextBoxDatePicker').datepicker({ yearRange: '1900:2323' });
$('#TextBoxDatePicker').datepicker('option', 'maxDate', '0');
$('#TextBoxDatePicker').datepicker('option', 'minDate', '-90y');
$('#TextBoxDatePicker').datepicker('option', 'yearRange', '1900:2323');
});", true);
我尝试了许多不同的选项来尝试重新填充文本框,但似乎都没有。
- 将文本值放入会话中并在页面加载时填充文本框
- 将值添加为属性值
- 添加“var jobValue = document.getElementsByName('TextBoxDatePicker')[0].value; $('#TextBoxDatePicker').datepicker('setDate', jobValue);” 到 javascript。
我认为问题与 RegisterStartupScript 每次擦除值有关,但我不确定如何解决这个问题。
在停止回发时清除文本框值的任何帮助将不胜感激。
提前致谢。