2008-09-24 16 views
5

पर प्रकट नहीं मेरे पास है जो अपने मार्कअप पर दो बक्सें है उपयोगकर्ता नियंत्रण DateTimeUC नामित:नियंत्रण गतिशील रूप से बनाए गए उपयोगकर्ता नियंत्रण

Controls.Add(GenerateDateTime(parameter)); 
private DateTimeUC GenerateDateTime(SomeParameter parameter) 
{ 
    DateTimeUC uc = new DateTimeUC(); 
    uc.ID = parameter.Name; 
    return uc; 
} 
:

<asp:TextBox ID="dateTextBox" runat="server"></asp:TextBox> 
<asp:TextBox ID="timeTextBox" runat="server"></asp:TextBox> 

मैं गतिशील किसी अन्य उपयोगकर्ता नियंत्रण में इस पर नियंत्रण बनाने हूँ

लेकिन जब मैं पृष्ठ प्रस्तुत करता हूं, डेटटाइमयूसी कुछ भी प्रस्तुत नहीं करता है। मैंने इसे इस तरह से चेक किया:

protected override void Render(HtmlTextWriter writer) 
{ 
    base.Render(writer); 

    StringBuilder builder = new StringBuilder(); 
    StringWriter swriter = new StringWriter(builder); 
    HtmlTextWriter hwriter = new HtmlTextWriter(swriter); 
    base.Render(hwriter); 
    string s = builder.ToString(); 
} 

एस खाली है और नियंत्रण। गणना 0 है। मैं क्या गलत कर रहा हूं?

उत्तर

9

आपको "DateTimeUC uc = new DateTimeUC();" के बजाय LoadControl("your_user_control_app_relative_path.ascx") विधि का उपयोग करना होगा;

+0

सारा दिन इस का जवाब की तलाश में गया। धन्यवाद! – McMuttons

+0

मैं एक उपयोगकर्ता नियंत्रण को कैसे लोड कर सकता हूं जो एक डीएल में एम्बेडेड है? – Zolomon

+0

@ ज़ोलोमन: आपको * .ascx फ़ाइल की आवश्यकता है। * .ascx फ़ाइल में एएसपीनेट मार्कअप होता है जिसका उपयोग ऑटोगनेरेटेड क्लास के लिए किया जाता है। स्वत: उत्पन्न वर्ग विधानसभा (* .dll) में वर्ग से विरासत में मिलता है। – TcKs

0

मैं थोड़ी देर पहले इस समस्या में भाग गया। आपको LoadControl() विधि का उपयोग करने की आवश्यकता है। उस पर this page देखें।

0

मुझे लगता है कि आप पृष्ठ के फॉर्म & पर अपना नियंत्रण जोड़ना चाहते हैं।

अपने कोड:

Controls.Add(GenerateDateTime(parameter)); 

कोशिश:

Page.Form.Controls.Add(GenerateDateTime(parameter)); 
संबंधित मुद्दे