2011-05-20 11 views
9

के अंदर JQuery UI डेटपिकर का उपयोग करना मैं डेट पिकर के लिए अपडेटपैनल नियंत्रण और Jquery UI का उपयोग करने का प्रयास कर रहा हूं। लेकिन अगर डेट पिकर कंट्रोल (टेक्स्टबॉक्स) अपडेटपेनल के कंटेंट टेम्पलेट के अंदर है, तो डेट पिकर काम नहीं करता है।UpdatePanel

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
    <script src="Scripts/jqueryui/js/jquery-ui-1.8.8.custom.min.js" type="text/javascript"></script> 

    <script language="javascript" type="text/javascript"> 

     $(function() { 
      var dates = $(" #txtDatePicker").datepicker(
      { 
       firstDay: 1, 
       maxDate: '-1y', 
       minDate: '-1y', 
       dateFormat: 'dd/mm/yy', 
       changeMonth: true, 
       changeYear: true, 
       showAnim: "drop", 
       onSelect: function (selectedDate) { 
        var option = this.id == "txtDatePicker" ? "minDate" : "maxDate", 
        instance = $(this).data("datepicker"); 
        date = $.datepicker.parseDate(
         instance.settings.dateFormat || 
         $.datepicker._defaults.dateFormat, 
         selectedDate, instance.settings); 
        dates.not(this).datepicker("option", option, date); 
       } 
      } 
      ); 
     }); 

    </script> 



    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
    <asp:TextBox ID="txtDatePicker" runat="server"></asp:TextBox> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnSomeButton" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

वहाँ किसी भी तरह से UpdatePanel सामग्री के अंदर jQuery के यूआई datepicker उपयोग करने के लिए है:

यहाँ कोड है?

+0

क्या आप .NET 4 का उपयोग कर रहे हैं और क्लाइंट आईडीमोड को स्थिर में सेट कर रहे हैं? यदि नहीं, तो #txtDatePicker पृष्ठ नहीं होने पर _not_ आपके टेक्स्टबॉक्स की आईडी होने जा रहा है ... – ShaneBlake

+0

हाँ मैं .NET 4 का उपयोग कर रहा हूं और टेक्स्टबॉक्स का क्लाइंट आईडीमोड स्टेटिक पर सेट है। –

उत्तर

1

फिर आप अपने नियंत्रण पैनलों में डालते हैं, वे उन्हें अद्वितीय आईडी बदल सकते हैं। अपने कोड के लिए इस प्रयास करें:

var dates = $("#<%= txtDatePicker.ClientID %>").datepicker( 

या

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

करने के लिए अपने कोड को स्थानांतरित इसके अलावा अपने चयनकर्ता में एक जगह नहीं है:

var dates = $(" #txtDatePicker").datepicker(

के बजाय:

var dates = $("#txtDatePicker").datepicker(

फिर UpdatePanel और AJAX टूलकिट का उपयोग, आप UpdatePanel बाहर jQuery नियंत्रण के लिए

$(document).ready(function() { // jQuery 
    AssignFrameHeight(); 
}); 

दौरान

function pageLoad() 
{ // MS AJAX - UpdatePanel initialize 
    InitializeDatePicker(); 
} 
UpdatePanel में नियंत्रण के लिए

दौरान initializers का उपयोग करना चाहिए, और।

+0

मैंने दोनों तरीकों से प्रयास किया है लेकिन समस्या हल नहीं हुई थी। –

+0

कोड अपडेट किया गया - पृष्ठ लोड फ़ंक्शन के बारे में – VMAtm

संबंधित मुद्दे