「TimePicker」というユーザーコントロールに取り組んでいます。
このユーザー コントロールは、jquery タイムピッカーを利用し、それをラップして、asp.net で簡単に使用できるようにします。
簡単なスクリプトを使用して、jquery タイムピッカーをテキスト ボックスにバインドしています。
$('#<%= timepicker_textbox.ClientID %>').timepicker({
onClose: function() {
__doPostBack('<%= timepicker_textbox.ClientID %>', '');
}
});
また、ユーザーが時間を選択してポストバックが発生した後にページ全体が更新されるのを避けるために、このテキストボックスを更新パネル内に配置することも選択しました。
問題は、更新パネルがリロードされた後、ページ内のスクリプトが再度実行されないため、jquery タイムピッカーがテキスト ボックスに適用されないことです。
次のコードを追加することで、これを修正できました。
Sys.Application.add_load(function () {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(<%= timepicker_textbox.ClientID %>_onControlLoad());
});
function <%= timepicker_textbox.ClientID %>_onControlLoad()
{
$('#<%= timepicker_textbox.ClientID %>').timepicker({
onClose: function() {
__doPostBack('<%= timepicker_textbox.ClientID %>', '');
}
});
}
これにより、関数が登録され、部分的なポストバックごとに再度実行されます。
問題は、この特定のタイムピッカーの問題のみが修正され、同じページ内の他の要素では修正されないことです!
ページ内に複数のタイムピッカーがあり、1 つのタイムピッカーで時間を選択すると、他のタイムピッカーが機能しないため、これは私にとって大きな問題です...
どんな提案でも大歓迎です。
ありがとう、
エイタン。