2009-11-03 22 views
5

पर किसी भी संपत्ति/विशेषता को अनुमति देना मैंने देखा है कि अधिकांश, यदि नहीं, तो सिस्टम.Web.UI.WebControls नामस्थान में मानक वेब नियंत्रण, आप क्रैश किए बिना उन गुणों को जोड़ सकते हैं जिन्हें आप चाहते हैं पन्ना।किसी सर्वर/उपयोगकर्ता नियंत्रण

एएसपी लें: उदाहरण के लिए बटन नियंत्रण। मैं एक कस्टम सर्वर नियंत्रण दुर्घटनाओं जो अगर मैं इसे करने के लिए मनमाने ढंग से विशेषताओं को जोड़ने मिल गया है

<form runat="server"> 
    <asp:Button runat="server" Text="Test button" crapAttribute="crapValue" /> 
</form> 

अब,:

इस कोड को पूरी तरह से वैध है। यह केवल उन गुणों को स्वीकार करता है जिनके पास एक समान सार्वजनिक संपत्ति परिभाषित होती है।

मुझे जो त्रुटि मिलती है वह इस तरह है "नियंत्रण में सार्वजनिक संपत्ति" crapAttribute "नहीं है"।

मैं अपने कस्टम नियंत्रण को क्रैश किए बिना किसी भी विशेषता को स्वीकार करना चाहता हूं। काम करने के लिए मुझे क्या करने की ज़रूरत है?

मैंने प्रतिबिंबक में मानक नियंत्रणों को देखा है और उनके पास सभी प्रकार के गुण और सामान हैं लेकिन ऐसा कुछ भी नहीं था जिसे मैंने देखा जो तुरंत मेरी आंख को पकड़ा।

मेरे कस्टम नियंत्रण वेबकंट्रोल से विरासत में हैं जो इसके लायक है।

उत्तर

4

आपको विशेष रूप से कुछ भी करने की ज़रूरत नहीं है ताकि आर्बिटरी गुणों को नियंत्रण मार्कअप जोड़ा जा सके। WebControl से प्राप्त होने वाली चीजें आमतौर पर इन विशेषताओं को स्कूप करेंगी और उन्हें विशेषता संग्रह में डंप करेंगी।

मैं कारण नहीं सोच सकता कि यह असफल क्यों होगा। यदि आपके पास Render के कार्यान्वयन में Attributes संग्रह प्रस्तुत करना याद रखना होगा।

क्या आप अपने नए प्रश्न के कोड का एक सरल उदाहरण जोड़ सकते हैं जो आपके प्रश्न में विफल रहता है?

+1

अब मुझे एक गधे की तरह लगता है :-) मुझे एहसास हुआ कि मैं वास्तव में "नियंत्रण" से विरासत में हूं, न कि "वेबकंट्रोल"। हम "वेबकंट्रोल" से उत्तराधिकारी थे लेकिन कुछ समय पहले इसे "नियंत्रण" में बदल दिया गया था। मुझे विश्वास है कि अगर मैं "वेबकंट्रोल" से विरासत में प्रवेश करना शुरू करता हूं, तो यह समस्या केवल समाप्त हो जाएगी। – HaukurHaf

0

एक इसके पीछे

myCustomControl.Attributes.Add("customproperty", "value"); 

इस कोड में कस्टम गुण जोड़ रहा है आप के लिए काम करना चाहिए करने का तरीका है।

हालांकि, मुझे यह जानने में दिलचस्पी है कि सर्वर नियंत्रण में इसे कैसे करना है।

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

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