2011-03-08 20 views
21

मान मैं इसUserControl (* .ascx) में कस्टम विशेषता?

<MyTag:MyWidget runat="server" /> 

की तरह एक उपयोगकर्ता नियंत्रण मैं सोच रहा हूँ अगर मैं की तरह

<MyTag:MyWidget runat="server" MemberHeight="400" PublicHeight="200" /> 

ताकि MyWidget.ascx में कुछ कर सकते हैं मैं

<div height="<%=IsLoggedIn ? MemberHeight : PublicHeight%>"> 

या हो सकता है ऐसा कुछ...? क्योंकि मैं चाहता हूं कि इस विजेट का उपयोग करने वाले प्रत्येक पृष्ठ में ऊंचाई अलग-अलग हो।

+1

आप इसे की कोशिश की? अपने UserControl में सार्वजनिक गुणों का खुलासा करना संभव है, जैसे कि आप एएसपीएक्स मार्कअप में उपयोगकर्ता नियंत्रण (जैसे दृश्यमान) की मानक संपत्ति होगी। ये गुण serializable (एफई स्ट्रिंग या इंटीजर) होना चाहिए। –

उत्तर

28

UserControl वर्ग कुछ की तरह करने के लिए एक सार्वजनिक संपत्ति को शामिल करें ...

public int MySize { get; set; } 
+1

यह सही उत्तर है (हालांकि आपके मामले में, आप सदस्य हाइट और पब्लिक हाइट नामक दो गुण जोड़ देंगे)। – Jacob

+0

लगता है कि अगर आप संपत्ति को सुरक्षित के रूप में घोषित करते हैं तो यह काम नहीं कर रहा है। क्या आप जानते हैं क्यों? – fengd

+0

@ जून 1 - 'संरक्षित' का अर्थ है कि केवल विस्तारित कक्षाएं उस संपत्ति तक पहुंच सकती हैं। इस मामले में, यह एक अलग पृष्ठ/नियंत्रण है जिसे संपत्ति तक पहुंचने की आवश्यकता है। –

11

आप इस तरह के रूप में, दोनों मदों के लिए सार्वजनिक गुण निर्धारित करने होंगे:

public int MemberHeight{ get; set; } 
public int PublicHeight{ get; set; } 
संबंधित मुद्दे