Tuesday, 15 March 2011

c# - create cascading dropdownlist from cached data -


मेरे आवेदन में मैंने एक मुख्य क्वेरी लिखी है

  SqlDataAdapter cmd0 = new SqlDataAdapter ( तालिका 1, sqlconn से a, b, c, d का चयन करें)   

तब मैंने इस क्वेरी को कैश किया है क्योंकि तालिका 1 बहुत बड़ी तालिका है और मैं डेटाबेस हर बार कॉल नहीं करना चाहता कुछ बदलाव करता है।

  डेटासेट ds0 = नया डेटासेट (); cmd0.Fill (DS0); डेटाव्यू स्रोत0 = नया डेटादृश्य (डीएसटीटीबल [0]); डेटाटाले dt0 = नया डेटाटाले (); cmd0.Fill (dt0); कैश ["डेटा"] = डीएस 0;   

मेरे पास एक और बी के लिए 2 ड्रॉपडाउन सूची है मुझे कैश्ड कॉलम मिलता है और ड्रॉपडाउन सूची में डेटा बाँध <डेटा> <डेटा> डेटाडाट डेटासेट = 1 के लिए ड्रॉपडाउन = डाटासेट (); डेटासेट_ए = (डेटासेट) कैश ["डेटा"]; डेटाव्यू डेटाव्यू_ए = डेटासेट_ए टीबल्स [0]। डिफॉल्टव्यू; Dataview_a.Sort = "a"; डेटाटाले डेटाैटबल_ए = डेटाव्यू_ए.ToTable (सच है, "ए"); Ddla.DataSource = datatable_a; Ddla.DataTextField = "a"; Ddla.DataValueField = "a"; ddla.DataBind ();

अब मैं dropdownlist को b initally उसी प्रकार से पॉप्यूलेट करने की कोशिश करता हूं जैसा कि मैंने ddla के लिए किया था

  // डेटाडाइटल डेटासेट के लिए ड्रॉपडाउन dataset_b = नया डाटासेट ( ); डेटासेट_ बी = (डेटासेट) कैश ["डेटा"]; डेटाव्यू डेटाव्यू_ बी = डेटासेट_ब टीबल्स [0]। डिफॉल्टव्यू; Dataview_b.Sort = "b"; डेटाटाले डेटाैटबल_बी = डेटाव्यू_ब। टूटेबल (सच है, "बी"); Ddlb.DataSource = datatable_b; Ddlb.DataTextField = "b"; Ddlb.DataValueField = "b"; ddlb.DataBind ();   

जब मैं अपने चयन को डीडीला (एक के लिए ड्रॉपडाउन सूची) में बदलता हूं तो मैं चाहता हूं कि ड्रॉप डाउन सूची को भी बदल दिया जाए। (कैस्केडिंग ड्रॉपडाउन लिस्ट)

तो मूल रूप से मैं क्वेरी की तरह आग करना चाहता हूँ:

  तालिका 1 से चुनें b जहां a = ddla.SelectedItem.ToString ()  < / Pre> 

लेकिन मैं इसे कैसे कैश्ड डेटा के साथ करने के लिए नहीं है।

कृपया मेरी मदद करो! धन्यवाद!

आप एक ही स्रोत से बाध्य नहीं कर सकते । आप जो चाहते हैं उसे प्राप्त करने के लिए आपको ddlb को खोलना होगा और इसके बजाय, selectedInxChanged या Selected code.DDLA में चयनित कोड को बदलना चाहिए, आपको डेटा तालिका से पंक्तियों को फ़िल्टर करना चाहिए और ddlb । वास्तव में ऐसा करने के कुछ तरीके हैं एक, डेटासेट में 2 तालिकाओं और रिश्ते का उपयोग करना है, एक कॉम्बो को तालिका <कोड> एक से बाँध करना और किसी अन्य तालिका को बाइंड करना b है। इस तरह, जब आप a पर क्लिक करते हैं, तो संबंधित पंक्तियों को b में दिखाई देगा

No comments:

Post a Comment