L'exemple de cet article partage l'utilisation de datepicker dans jqueryUI pour résoudre le problème d'échec lorsqu'il est utilisé conjointement avec UpdatePanel dans asp.net.
1. Comment utiliser le sélecteur de date de jqueryUI
--> le site officiel de jqueryUI Téléchargez le style qui convient au thème de votre système , thème jqueryUI : adresse de téléchargement (http://jqueryui.com/themeroller/#themeGallery)
-->Fichiers téléchargés
dossier jquery-ui-1.10.3.custom ; la différence entre les différents thèmes est qu'ils font référence à différents CSS
Téléchargés par défaut Les styles sont les suivants :
Autres styles, comme le style que j'ai téléchargé :
Le style téléchargé jqueryUI est différent sauf pour le dossier css, les autres fichiers sont les mêmes
--> Étapes pour utiliser datePicker dans la page
(1) Introduisez le fichier de style jquery-ui-1.10.3.custom .min.css
(2) Introduisez les fichiers de script jquery-1.9.1.js et jquery-ui-1.10.3.custom.min.js ; introduire le fichier jquery
( 3) Mon besoin est de faire une sélection d'heure de début et d'heure de fin.
Le code est le suivant :
<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>
Remarque :
(1)$("#ui-datepicker-p").css("font-size ", " 12px"); Utilisé pour changer la taille du contrôle de date
(2) dateFormat : "aa-mm-jj", changer le format de date
(3) Le contrôle de date est en Version anglaise, ajoutez un script pour le changer en chinois
/* 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']); });
(4) Pour une utilisation détaillée de certains attributs et méthodes de datepicker, vous pouvez vous référer à sa documentation API, qui est très détaillée
--> ; Partagez une autre astuce
Utilisation de $("[id$=txtASN]")
L'identifiant de contrôle de zone de texte défini de asp.net est txtASN, mais $("#txtASN") ne peut pas obtenir l'élément dom de la zone de texte. La raison en est qu'après avoir vérifié le code source, il s'avère que son ID de contrôle a changé si le contrôle est placé dans le. panneau ou le maître, l'ID d'entrée du contrôle HTML généré est Will change, tel que pnlBaseInfo_txtASN
Solution : $("[id$=txtASN]"), le sens est d'obtenir l'élément dom dont l'identifiant se termine par txtASN
-- >Effet complet
2. avec UpdatePanel dans asp.net
Problème : Après l'exécution, cliquez sur "Requête", la page est partiellement actualisée, et il s'avère que le sélecteur de calendrier ne sortir
DatePicker échoue après une publication asynchrone dans le problème UpdatePanel d'asp.net
Le contrôle DatePicker peut être affiché normalement lors du premier chargement de la page, mais après avoir cliqué sur la requête, le DatePicker échoue en raison d'une publication asynchrone.
--> Analyse de UpdatePanel
UpdatePanel est principalement utilisé pour un rafraîchissement partiel dans l'application afin d'éviter la publication de la page entière.
Le cœur de l'actualisation partielle de UpdatePanel réside dans le fichier MicrosoftAjaxWebForm.js. Son processus d'actualisation partielle consiste à soumettre la page au serveur (y compris ViewState). Après avoir exécuté le code du serveur, le HTML dans UpdatePanel sera réactualisé de manière asynchrone. rendu.
--> Analyse de jQuery
Parce qu'après l'actualisation partielle de UpdatePanel, l'élément de zone de texte qu'il contient est réécrit, et à ce moment-là, le l'arborescence DOM entière n'est pas disponible. Il n'y a pas de rechargement, donc l'événement ready de jQuery n'est pas déclenché, donc l'élément de zone de texte perd ses effets spéciaux d'origine.
-->Solution
Mettez le code pour initialiser DatePicker dans Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(evt, args) {});
$(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"); //改变大小 }); });
Vous Vous pouvez également vous référer aux articles suivants pour en savoir plus :
Utilisation du contrôle temporel jquery UI Datepicker (1)
Utilisation du contrôle temporel jquery UI Datepicker (2) )
Utilisation du contrôle du temps jquery UI Datepicker (3)
Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à tout le monde apprentissage.