2009-09-04 16 views
31

मेरे पास एक ड्रॉपडाउन सूची है जिसमें रिपोर्ट बनाने के लिए कई विकल्प हैं। खाते के प्रकार के आधार पर उपयोगकर्ता के पास कुछ विकल्प होते हैं जो दिखने चाहिए लेकिन चुनने योग्य नहीं हैं (अपग्रेड करने के लिए उनके लिए प्रोत्साहन के रूप में)।ड्रॉप डाउन सूची आइटम को अचयनित करें

मैं सोच रहा था कि अगर कोई इसे पूरा करने के तरीके के बारे में जानता है।

अनुमतियां पहले से ही मौजूद हैं, मुझे केवल कुछ आइटमों को अचयनित करने में सहायता की आवश्यकता है।

किसी भी मदद की बहुत सराहना की जाएगी।

शॉन

उत्तर

53

सुनिश्चित नहीं है कि आप अभी भी इसके लिए उत्तर खोज रहे हैं?

Mark Redman's answer बहुत अच्छा है यदि आप एएसपीएक्स पृष्ठ में चयन सूची को परिभाषित कर सकते हैं, हालांकि यदि आप ड्रॉप डाउन सूची को गतिशील रूप से स्पष्ट रूप से बाध्य करते हैं तो आप नहीं कर सकते हैं।

मैं परिणाम आप के बाद कर रहे हैं प्राप्त करने के लिए निम्नलिखित का उपयोग कर सफलता मिली (पूर्ण ब्राउज़र समर्थन पर यकीन नहीं है, लेकिन IE के नए संस्करण में काम करता है)

foreach (ListItem item in dropdownlist.Items) 
{ 
    if ([item should be disabled condition]) 
    { 
     item.Attributes.Add("disabled", "disabled"); 
    } 
} 

अपने विकलांग तत्वों यह प्रदान करेगा सलेटी रंग।

+0

मैं आपके सुझाए गए कोड को 'पेज_लोड' ईवेंट में जोड़ रहा हूं लेकिन 'ListItem' आइटम (चयन) जिसे मैं अक्षम करना चाहता हूं अभी भी भूरे रंग से बाहर नहीं है। कोई विचार क्यों? –

+0

क्या यह आइटम को अक्षम करता है? अगर ऐसा होता है तो यह शैली हो सकती है जिसे समायोजित करने की भी आवश्यकता है? –

+2

ड्रॉप डाउन सूची नियंत्रण के लिए आपको डाटाबेसिंग ईवेंट हैंडलर में कोड जोड़ने की आवश्यकता है। –

2

आप एक आवश्यक फ़ील्ड सत्यापनकर्ता का उपयोग करें और ड्रॉप डाउन सूची में आइटम के मूल्य आप चयन नहीं करना चाहते करने के लिए प्रारंभिक मूल्य गुण सेट कर सकते हैं।

<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" 
         ErrorMessage="" ControlToValidate="DropDown" InitialValue="Unselectable Item"></asp:RequiredFieldValidator> 
0

आप इस क्लाइंट-साइड को एक हैंडलर के साथ कर सकते हैं जो किसी आइटम का चयन होने पर ट्रिगर होता है। फिर आइटम को अचयनित करें और/या एक त्रुटि संदेश प्रदर्शित करें।

16

आप एक HTML में एक <option> टैग निष्क्रिय कर सकते हैं <select>

देखें: http://www.htmlref.com/reference/appa/tag_option.htm

asp.net में

:

<asp:DropDownList ID="MyDropDownList" runat="server"> 
     <asp:ListItem Text="Standard Report" Value="SR"></asp:ListItem> 
     <asp:ListItem Text="Enterprise Report" Value="ER" disabled="disabled"></asp:ListItem> 
    </asp:DropDownList> 
+0

ASP.NET में यह करने के लिए कैसे ? –

+0

मुझे इसके लिए कोड लिखना नहीं था !! :-) –

-3

इस

myDropDownList.Items.FindByValue("ReportValue").Enabled = false; 

यह अक्षम हो जाएगी प्रयास करें मूल रूप से सूची से आइटम नहीं इसे सूची में दिखा रहा है।

"ReportValue" = आइटम का मूल्य अक्षम होने के लिए।

+1

वह चाहता है कि अक्षम तत्वों को केवल चयन न करने योग्य दिखाई दे, इसलिए सुनिश्चित नहीं है कि यह काम करेगा। –

3

मुझे यह समस्या थी और पोस्ट किए गए पहले उत्तर का उपयोग करने का प्रयास किया, लेकिन यह मेरे लिए काम नहीं किया। इसके बाद मैंने पहली पोस्ट को

foreach (ListItem item in dropdownlist.Items) 
{ 
    if ([item should be disabled contdition]) 
    { 
    item.Enabled = false; 
    } 
} 

और यह मेरे लिए काम किया।

+5

यह दृष्टिकोण सूची से तत्व को हटा देता है, और इसे अक्षम नहीं करता है। तो यह इस पोस्ट में प्रारंभिक प्रश्न का उत्तर नहीं दे रहा है। –

-1

यदि यह HTML नियंत्रण है, तो इसे अचयनित करने में बहुत आसान है। बस "optgroup" HTML तत्व का उपयोग करें। जैसे

<select> 
<optgroup label="Hardware"></optgroup> 
<option id="1">mouse</option> 
<option id="2">keyboard</option> 
<option id="3">monitor</option> 
<optgroup label="Software"></optgroup> 
<option id="Option1">windows XP</option> 
<option id="Option2">MS Office</option> 
<option id="Option3">VStudio</option> 
</select> 

(नोट: इस दोनों आईई/फ़ायरफ़ॉक्स में काम करता है)

धन्यवाद सुशील Jinder

+3

यह 'ऑप्टग्रुप' के लिए नहीं है। – You

1

आप की कोशिश कर सकते इस

myDropDownList.Items.FindByValue("ReportValue").Attributes.Add("disabled", "disabled"); 
संबंधित मुद्दे