मेरे पास एक सूची बॉक्स है जिसे मैं Listbehind में ListItems जोड़ रहा हूं। मेरी समस्या यह है कि ListBox चयनित आइटम नहीं देख रहा है। मेरे पास ड्रॉपडाउनलिस्ट से उपयोगकर्ता का चयन करने के आधार पर सूची बॉक्स को गतिशील रूप से पॉप्युलेट किया जा रहा है, इसलिए ड्रॉपडाउनलिस्ट में ऑटोपोस्टबैक सत्य पर सेट है। मुझे लगता है कि यह किसी भी तरह से समस्या पैदा कर रहा है।ListBox चयनित आइटम नहीं मिल रहे हैं
मेरा SelectedIndexChanged
विधि, जिसका उपयोग तब भी किया जाता है जब ड्रॉपडाउनलिस्ट में कोई आइटम चुना जाता है, PopulateListBox
नामक विधि को कॉल करता है।
<asp:DropDownList runat="server" ID="type" width="281px" OnSelectedIndexChanged="SelectedIndexChanged" AutoPostBack="true" />
<asp:ListBox runat="server" ID="listbox" width="281px" height="200px" selectionmode="Multiple" />
मुझे क्या करना कोशिश कर रहा हूँ (तार की सूची जोड़ने के तार चयनित किया जा रहा है:
protected void SelectedIndexChanged(object sender, EventArgs e)
{
string typeStr = type.SelectedItem.Text;
MyType = Api.GetType(typeStr);
PopulateListBox();
}
private void PopulateListBox()
{
listbox.Items.Clear();
foreach (PropertyInfo info in MyType.GetProperties())
listbox.Items.Add(new ListItem(info.Name));
}
क्या इसके लायक है के लिए, यहाँ DropDownList और ListBox हैं: यहाँ उन तरीकों लग रहा है की तरह है आइटम) सबमिट बटन पर क्लिक करने पर एक सत्र चर के रूप में। सत्र में सूची जोड़ने के बाद बटन एक नए पृष्ठ पर रीडायरेक्ट करता है। डीबगर में जाकर, स्ट्रिंग्स की सूची उस बिंदु पर खाली है जहां मैं इसे सत्र में जोड़ता हूं।
listbox.GetSelectedIndices()
कुछ भी नहीं देता है।
अद्यतन
मैं चयनित आइटम का उपयोग करता है, तो मैं DropDownList में बदलाव नहीं बनाते हैं कर सकते हैं। सूची बॉक्स प्रारंभ में पृष्ठ लोड पर आबादी है, और यदि मैं चयन करता हूं तो उन्हें पहचाना जाता है। अगर मैं ड्रॉपडाउनलिस्ट से कुछ चुनता हूं और लिस्टबॉक्स को दोहराया जाता है, तो चयनों को पहचाना नहीं जाता है।
मेरा Page_Load
विधि केवल दो चीजें करता है। यह मेरी एपीआई चर initializes और PopulateDropDown
कहता है, जो इस प्रकार है:
private void PopulateDropDown()
{
foreach (Type t in Api.GetAllTypes())
type.Items.Add(new ListItem(t.Name));
string typeStr = type.Items[0].Text;
Type = Api.GetType(typeStr);
PopulateListBox();
}
लेकिन जब आप सूची बॉक्स में चयनित आइटम नहीं देख सकते हैं? ड्रॉपडाउन सूची में चयन बदलते समय? या आपके पास कुछ अन्य नियंत्रण पोस्टबैक कर रहा है? – dzendras
@dzendras: मैंने इस संबंध में नीचे पोस्ट को अपडेट किया है। –
आप सूची बॉक्स तक कब पहुंचते हैं? Pageload? जांचें कि जिस स्थान पर आप इसे एक्सेस करते हैं, वह एएसपी.नेट पृष्ठ जीवन चक्र के अनुसार ठीक है (प्रसंस्करण अनुरोध नियंत्रण के शुरुआती चरणों में उनके गुण सेट नहीं होते हैं)। यह भी जांचें कि क्या आप पृष्ठ जीवन चक्र में पहले सूची बॉक्स को साफ़ नहीं कर रहे हैं। – dzendras