5

के साथ एकीकृत करने के लिए कैसे मैं .NET एएसपी एमवीसी 3 इंट्रानेट एप्लिकेशन में jQuery की डेटपिकर प्लगइन का उपयोग कर रहा हूं। उपयोगकर्ता का उपयोग करने वाले उपयोगकर्ता के पास अलग-अलग देशों और अलग-अलग लोकेल में कार्यालय होते हैं। यही कारण है कि मैं थ्रेड। कंटेंट थ्रेड। कंटेंटकल्चर। डेटटाइमफॉर्मैटjQuery डेटपिकर प्लगइन को एकीकृत करना चाहता था। मेरा पहला समाधान सहायक विस्तार विधि बनाने के लिए किया गया था:jQuery डेटपिकर की तिथिफॉर्मैट - .NET वर्तमान संस्कृति डेटटाइमफॉर्मैट

public static string jQueryDatePickerFormat(this HtmlHelper helper) 
    { 
     return Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern; 
    } 

और इस तरह जावास्क्रिप्ट में सेट DateFormat विकल्प:

$("#StartDate").datepicker({ dateFormat: '@Html.jQueryDatePickerFormat()' }); 

इसके तुरंत बाद मैंने महसूस किया कि datepicker के DateFormat विकल्प स्वरूपों कि अलग अलग है का समर्थन करता है .NET में प्रारूप से कार्यान्वयन।

उदाहरण के लिए: Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern pl-पी एल के लिए रिटर्न yyyy-MM-dd (यह 2010-01-01 के रूप में दिनांक स्वरूप होगा), जबकि datepicker में एक ही प्रारूप उसी दिनांक को 20102010 जनवरी 01 के रूप में प्रारूपित करेगा। मैं जल्दी से अनुकूलित मेरी सहायक विधि और त्वरित सुधार बदलें ("yyyy", "yy") लागू बदलें ("एम एम", "मिमी"):।

public static string jQueryDatePickerFormat(this HtmlHelper helper) 
    { 
     return Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.Replace("yyyy", "yy").Replace("MM", "mm"); 
    } 

मैं काम करता है, लेकिन मैं इस समय के लिए प्रतीक्षा जब अन्य मुद्दे उभरेंगे। क्या jQuery की डेट पिकर प्लगइन में .NET लोकेल सेटिंग्स को लागू करने का कोई आसान तरीका है?

धन्यवाद, पावेल

+0

हाय, क्या आपने अपना हल किया मुसीबत ? – torm

उत्तर

4

codeproject लेख ASP.NET में jQueryUI Datepicker MVC http://www.codeproject.com/Articles/62031/JQueryUI-Datepicker-in-ASP-NET-MVC करता है कि आप वास्तव में क्या चाहते थे

/// Converts the .net supported date format current culture 
/// format into JQuery Datepicker format. 
/// </summary> 
/// <param name="html">HtmlHelper object.</param> 
/// <param name="format">Date format supported by .NET.</param> 
/// <returns>Format string that supported in JQuery Datepicker.</returns> 
public static string ConvertDateFormat(this HtmlHelper html, string format) 

मैं भी एक समारोह है कि opposite- Translate jQuery UI Datepicker format to .Net Date format

0

मैं कुछ समय पहले एक ही समस्या पर sumbled गए हैं। जिस मार्ग को मैंने लिया वह बस कनवर्ट करना था जो भी jQuery डेटपिकर मुझे मिलिज़ (.getTime()) प्रदान करता है। यह जानकर कि जावास्क्रिप्ट समय 1,1,1970 की तारीख और 1,1,0 पर .NET पर आधारित है, मैं अपने नियंत्रक पक्ष

पर गणना करने में सक्षम हूं तो मान लीजिए कि आप javscript DateTime.getTime () आपके नियंत्रक के लिए मूल्य जो आप कर सकते हैं;

var myDate = new DateTime(1970, 1, 1) + new TimeSpan(time * 10000); 
आपके विचार आप कर सकते थे में

;

$.datepicker.setDefaults($.datepicker.regional["pl"]); 

    $("#StartDate").datepicker({ 
     dateFormat: "yy-mm-dd", 
     onSelect: function (dateText) { 
      var currentDate = new Date(dateText); 
      time = currentDate.getTime(); 
      // $.post | $.ajax here - whatever you need 
     } 
    }); 

आप समय-क्षेत्र और तथ्य के बारे में याद करने के लिए जावास्क्रिप्ट लेता है कि उस खाते में जब दिनांकों की गणना चाहते है।

0

संग्रहीत करता है पोस्ट किया है कार्य है छिपे हुए क्षेत्र में

 <input id="dateFormate" type="hidden" 
value='@System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToLower().Replace("yyyy", "yy")'/> 

     @Html.HiddenFor(model=>model.StartDate) 
     @Html.HiddenFor(model=>model.EndDate) 
     <input type="text" id="tbStartDate" value="" disabled="disabled" /> 
     <input type="text" id="tbEndDate" value="" disabled="disabled" /> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#tbStartDate").datepicker({ 
        dateFormat: $('#dateFormate').val(), 
        showOn: 'button', 
        buttonImageOnly: true, 
        buttonImage: '/Content/Calendar.png', 
        buttonText: 'Click here (date)', 
        onSelect: function (dateText, inst) { 
         var $endDate = $('#tbStartDate').datepicker('getDate'); 
         $endDate.setDate($endDate.getDate() + 1); 
         $('#tbEndDate').datepicker('setDate', $endDate).datepicker("option", 'minDate', $endDate); 
        }, 
        onClose: function (dateText, inst) { 
         $("#StartDate").val($("#tbStartDate").val()); 
        } 
       }); 

       $("#tbEndDate").datepicker({ 
        dateFormat: $('#df').val(), 
        showOn: 'button', 
        buttonImageOnly: true, 
        buttonImage: '/Content/Calendar.png', 
        buttonText: 'Click here (date)', 
        onClose: function (dateText, inst) { 
         $("#EndDate").val($("#tbEndDate").val()); 
        } 
       }); 

       var $endDate = $('#tbStartDate').datepicker('getDate'); 
       $endDate.setDate($endDate.getDate() + 1); 
       $('#tbEndDate').datepicker('setDate', $endDate).datepicker("option", 'minDate', $endDate); 
      }); 
     </script>