Contoh dalam artikel ini berkongsi penggunaan datepicker dalam jqueryUI untuk menyelesaikan masalah kegagalan apabila digunakan bersama dengan UpdatePanel dalam asp.net.
1. Cara menggunakan datepicker jqueryUI
--> tapak web rasmi jqueryUI Muat turun gaya yang sesuai dengan tema sistem anda , tema jqueryUI: Alamat muat turun (http://jqueryui.com/themeroller/#themeGallery)
-->Fail yang dimuat turun
jquery-ui-1.10.3.folder tersuai; perbezaan antara tema yang berbeza ialah ia merujuk css yang berbeza
Dimuat turun secara lalai Gaya adalah seperti berikut:
Gaya lain, seperti gaya yang saya muat turun:
Yang dimuat turun jqueryUI berbeza kecuali untuk folder css , fail lain adalah sama
--> Perkenalkan fail gaya .min.css jquery-1.10.3.custom
(2) Perkenalkan fail skrip jquery-1.9.1.js dan jquery-ui-1.10.3.custom.min.js; memperkenalkan fail jquery ( 3) Keperluan saya ialah membuat masa mula dan pemilihan masa tamat.
Nota:
<script type="text/javascript"> $(function () { $("#txtStartDate").datepicker({ dateFormat: "yy-mm-dd", changeMonth: true, onClose: function (selectedDate) { $("#txtEndDate").datepicker("option", "minDate", selectedDate); } }); $("#txtEndDate").datepicker({ dateFormat: "yy-mm-dd", changeMonth: true, onClose: function (selectedDate) { $("#txtStartDate").datepicker("option", "maxDate", selectedDate); } }); $("#ui-datepicker-p").css("font-size", "12px"); //改变大小 }); </script> </head> <body> <label for="from">开始时间:</label> <input type="text" id="txtStartDate" name="from"/> <label for="to">结束时间:</label> <input type="text" id="txtEndDate" name="to"/> </body>
(2) dateFormat: "yy-mm-dd", tukar format tarikh
(3) Kawalan tarikh berada dalam Versi Inggeris, tambahkan skrip untuk menukarnya dalam bahasa Cina
(4) Untuk penggunaan terperinci beberapa atribut dan kaedah datepicker, anda boleh merujuk kepada dokumentasi APInya, yang sangat terperinci
/* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Cloudream (cloudream@gmail.com). */ jQuery(function ($) { $.datepicker.regional['zh-CN'] = { closeText: '关闭', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], monthNamesShort: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'], dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'], weekHeader: '周', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: '年' }; $.datepicker.setDefaults($.datepicker.regional['zh-CN']); });
Penggunaan $("[id$=txtASN]")
Id kawalan kotak teks yang ditetapkan bagi asp.net ialah txtASN, tetapi $("#txtASN") tidak boleh mendapatkan elemen dom kotak teks Sebabnya ialah selepas menyemak kod sumber, didapati bahawa ID kawalannya telah berubah Jika kawalan diletakkan di dalam panel atau induknya, ID input kawalan html yang dijana ialah Akan berubah, seperti pnlBaseInfo_txtASNPenyelesaian: $("[id$=txtASN]"), maksudnya ialah mendapatkan elemen dom yang idnya berakhir dengan txtASN
2 UpdatePanel dalam asp.net
Masalah: Selepas dijalankan, klik "Query", halaman dimuat semula sebahagiannya dan didapati bahawa pemilih kalendar tidak datang keluar DatePicker gagal selepas postback tak segerak dalam Masalah UpdatePanel asp.netKawalan DatePicker boleh dipaparkan seperti biasa apabila halaman dimuatkan buat kali pertama, tetapi selepas mengklik pertanyaan, DatePicker gagal kerana postback tak segerak.
--> Analisis UpdatePanel
UpdatePanel digunakan terutamanya untuk muat semula separa dalam aplikasi untuk mengelakkan Postback keseluruhan halaman. Inti penyegaran separa UpdatePanel terletak pada fail MicrosoftAjaxWebForm.js. diberikan.
Oleh kerana selepas UpdatePanel dimuat semula sebahagiannya, elemen kotak teks di dalamnya ditulis semula, dan pada masa ini keseluruhan pokok DOM tidak Tiada muat semula, jadi acara sedia jQuery tidak dicetuskan, jadi elemen kotak teks kehilangan kesan khas asalnya.
-->PenyelesaianLetakkan kod untuk memulakan DatePicker dalam Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(evt, args) {});
Anda boleh juga merujuk artikel berikut untuk belajar:
$(function () { Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (evt, args) { $("[id$=txtStartDate]").datepicker({ dateFormat: "yy-mm-dd", changeMonth: true, onClose: function (selectedDate) { $("[id$=txtEndDate]").datepicker("option", "minDate", selectedDate); } }); $("[id$=txtEndDate]").datepicker({ dateFormat: "yy-mm-dd", changeMonth: true, onClose: function (selectedDate) { $("[id$=txtStartDate]").datepicker("option", "maxDate", selectedDate); } }); $("#ui-datepicker-p").css("font-size", "14px"); //改变大小 }); });
Penggunaan kawalan masa pemetik tarikh UI jquery (1)
Penggunaan kawalan masa pemetik tarikh UI jquery (2 )