2009-10-18 12 views
8

में मेरे पास देश, राज्य और मेट्रो के लिए 3 ड्रॉपडाउनलिस्ट हैं। मैं जब उपयोगकर्ता seclect देश तो राज्य dropdownlist Jquery भरना चाहते हैं और जब चयन ऊबाना तो मेट्रो dropdownlist भरने (ajax के dropdownlist व्यापक) की तरह ये प्रक्रिया मैं JQuery के साथ करना चाहते हैं।JQuery के साथ Bind DropDownlists Asp.Net

उत्तर

10

मैं इसे एएसपी.नेट एमवीसी में वर्णित करने जा रहा हूं, लेकिन यदि आप या तो एएसपी.नेट वेब सेवा लिखते हैं या इसे करने के लिए अपने कोड में केवल कुछ पेज विधियां डालते हैं, तो आप इसे प्राप्त कर सकते हैं - आप ' आपको एक जेएसओएन सीरियलाइज़र की आवश्यकता होगी, या तो तीसरा पक्ष समाधान या डब्ल्यूसीएफ में से एक।

MVC का उपयोग करना, पहले के तीन नियंत्रक कार्रवाई करते हैं - एक पृष्ठ प्रदर्शित करने के लिए देशों स्थिर हो जाएगा दो क्रमशः राज्यों और महानगरों प्राप्त करने के लिए, और:

public ActionResult Index() 
{ 
    ViewData["Countries"] = _countryRepository.GetList(); 
    return View(); 
} 

public ActionResult States(string countryCode) 
{ 
    var states = _stateRepository.GetList(countryCode); 
    return Json(states); 
} 

public ActionResult Metros(string countryCode, string state) 
{ 
    var metros = _metroRepository.GetList(countryCode, state); 
    return Json(metros); 
} 

दृश्य में, आप तीन है DropDownLists, एक ViewData [ "देश"] वस्तु, कहते हैं कि यह देश का नाम दिया गया है के लिए बाध्य है, तो आप इस तरह एक अजाक्स कॉल के साथ jQuery में राज्यों प्राप्त कर सकते हैं:

$('#Countries').change(function() { 
    var val = $(this).val(); 
    $states = $('#States'); 
    $.ajax({ 
     url: '<%= Url.Action('States') %>', 
     dataType: 'json', 
     data: { countryCode: val }, 
     success: function(states) { 
      $.each(states, function(i, state) { 
       $states.append('<option value="' + state.Abbr+ '">' + state.Name + '</option>'); 
      }); 
     }, 
     error: function() { 
      alert('Failed to retrieve states.'); 
     } 
    }); 
}); 

महानगरों ड्रॉप डाउन analogically भरा जा सकता है, सर्वर के लिए देश और राज्य चयन दोनों को पारित करना डी मेट्रो क्षेत्रों की एक सरणी के साथ एक JSON ऑब्जेक्ट वापस प्राप्त करना।

मैंने रिपोजिटरी कार्यान्वयन के विवरण को छोड़ दिया, बस किसी भी तरह से राज्य/मेट्रो क्षेत्रों के संग्रह के साथ सर्वर पर परिणाम चर भरें। मैंने यह भी माना कि राज्य वर्ग में दो गुण होंगे - एबब्र (उदा।, 'सीए') और नाम (उदाहरण के लिए, कैलिफ़ोर्निया)।

मुझे उम्मीद है कि यह आपको किसी भी तरह से मदद करता है, या कम से कम समाधान के प्रति आपको निर्देशित करता है।

+1

बहुत बहुत धन्यवाद, मेरे लिए भी काम करता है! डाल करने के लिए एक <विकल्प मान के सामने .... – Michel

+0

ओह में, मैं इसे नोटिस नहीं किया था! धन्यवाद, मैंने अपना जवाब संपादित कर लिया है। –

+0

एक नोट, अगर 'जेसन' में पार्सिंग नहीं कर रहा है और 'सूची ' जैसी कुछ लौटा रहा है, तो मुझे 'states.d' का उपयोग करना पड़ा था या अन्यथा गुण हमेशा अनिर्धारित थे। – atconway

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