これは私を悩ませ始めており、グーグルは私のために働く結果を出していないようです.
ボタンがポストバックを引き起こすと常にテキストをクリアする ASP.NET Textbox に JQueryUI Calendar があります。
次の 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);」を追加 ジャバスクリプトに。
問題は、RegisterStartupScript が毎回値を消去することに関係していると思いますが、それをどのように回避するかはわかりません。
ポストバックでテキストボックスの値がクリアされるのを止めるには、どんな助けも大歓迎です。
前もって感謝します。