2008-12-19 12 views
5

आइए कहें कि मेरे पास एक मास्टर पेज में हेडर उपयोगकर्ता नियंत्रण है, और मास्टर पेज के अंदर कौन सा सामग्री पृष्ठ लोड किया गया है, इस पर निर्भर करता है कि उपयोगकर्ता नियंत्रण की एक संपत्ति बदलना चाहती है। मैं इसके बारे में कैसे जा सकता हूं?किसी सामग्री पृष्ठ से किसी मास्टरपृष्ठ में उपयोगकर्ता नियंत्रण का उपयोग कैसे करें?

धन्यवाद!

उत्तर

13

आप दो विधियों का उपयोग कर सकते हैं। पहला Page.Master.FindControl('controlID') का उपयोग कर रहा है। फिर आप इसे अपने उपयोगकर्ता नियंत्रण के प्रकार में डाल सकते हैं। दूसरी विधि आपके एएसपीएक्स पेज पर <%@ MasterType VirtualPath=""> या <%@ MasterType TypeName=""%> टैग जोड़कर है। VirtualPath में मास्टर पेज के वर्चुअल पथ या TypeName में कक्षा जोड़ें। फिर आप इंटेलिजेंस के साथ सबकुछ एक्सेस कर सकते हैं।

+1

मास्टरटाइप निर्देश या तो वर्चुअलपाथ, या टाइपनाम का उपयोग करना चाहिए, लेकिन दोनों का उपयोग करने में असमर्थ है। – Mike

+0

@ माइक सही है और मैंने अपनी टिप्पणी को दर्शाने के लिए उत्तर संपादित किया है। – BornToCode

4

एक अन्य विधि है, और यह उस मास्टर पेज पर सार्वजनिक संपत्ति बनाकर है जो उपयोगकर्ता नियंत्रण को उजागर करता है।

1

सार्वजनिक संपत्ति का उपयोग करना काम करेगा। सामग्री पृष्ठ के FormLoad विधि में, आप इस (VB) की तरह कुछ कर सकता है:

Dim myMaster as MyMasterPage = CType(Page.Master, MyMasterPage) 
myMaster.MyUserControl.Text = "Hello!" 
+0

कोड-बैक फ़ाइलों का उपयोग करना सबसे अच्छा अभ्यास नहीं है। यहां उन सभी से छुटकारा पाने का प्रयास है http://haacked.com/archive/2008/12/19/a-little-holiday-love-from-the-asp.net-mvc-team.aspx –

+4

कैसा है यह सबसे अच्छा अभ्यास नहीं है? आप एएसपी.नेट वेबफॉर्म को भ्रमित कर रहे हैं, जो यह प्रश्न है और एएसपी.नेट एमवीसी है। यह जवाब पूरी तरह से उपयुक्त है। – jwalkerjr

5

पहले below.Then रूप masterpage में उपयोगकर्ता नियंत्रण को खोजने के नियंत्रण आप अपनी संपत्ति का उपयोग करने की जरूरत है लगता है।

UserControl uch = Page.Master.FindControl("ucHeader1") as UserControl; 
PlaceHolder phProxylist= ucHeader1.FindControl("phProxy") as PlaceHolder; 
DropDownList ddlproxylist1 = ucHeader1.FindControl("ddlProxyList") as DropDownList; 
phProxylist.Visible = false; 

उम्मीद है कि इससे मदद मिलती है।

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

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