LoadControl(type, Params)
का उपयोग करते समय मुझे कोई समस्या है। मुझे स्पष्ट करने दें ...Asp.net Usercontrol LoadControl Issue
मैं एक सुपर सरल उपयोगकर्ता नियंत्रण है (ascx)
<%@ Control Language="C#" AutoEventWireup="True" Inherits="ErrorDisplay" Codebehind="ErrorDisplay.ascx.cs" EnableViewState="false" %>
<asp:Label runat="server" ID="lblTitle" />
<asp:Label runat="server" ID="lblDescription" />
साथ कोड (ग #)
के पीछे:
public partial class ErrorDisplay : System.Web.UI.UserControl
{
private Message _ErrorMessage;
public ErrorDisplay()
{
}
public ErrorDisplay(Message ErrorMessage)
{
_ErrorMessage = ErrorMessage;
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (_ErrorMessage != null)
{
lblTitle.Text = _ErrorMessage.Message;
lblDescription.Text = _ErrorMessage.Description;
}
}
}
कहीं और मेरी वेब अनुप्रयोग में
जोड़ा जा रहा निम्नलिखित कोड का उपयोग कर पृष्ठ पर उपयोगकर्ता नियंत्रण का एक उदाहरण:
divValidationIssues.Controls.Add(LoadControl(typeof(ErrorDisplay), new object[] { MessageDetails }));
मैं ओवरलोडेड संस्करण का उपयोग कर रहा हूं LoadControl क्योंकि मैं कन्स्ट्रक्टर को संदेश पैरामीटर पास करना चाहता हूं। यह ठीक है काम करने के लिए यह प्रतीत होता है।
हालांकि, OnPreRender()
को त्रुटि डिस्प्ले उपयोगकर्ता नियंत्रण पर निकाल दिया गया है, तो lblTitle और lblDescription चर दोनों null
दोनों हैं, उनके पास मार्कअप समकक्ष होने के बावजूद। संदेश चर सही ढंग से आबादी में किया गया है।
क्या कोई भी ऐसा हो सकता है कि यह क्यों हो रहा है?
धन्यवाद
संपादित करें:
बस स्पष्टता के लिए मैं भी है कि कोड है जो प्रोग्राम के पृष्ठ पर usercontrol जोड़ रहा है एक बटन दबाने की के जवाब में चल रहा है, इसलिए 'की मेजबानी जोड़ देंगे पृष्ठ 'ने इनेट, पेज_लोड के माध्यम से प्रगति की है और अब ईवेंट हैंडलर को संसाधित कर रहा है।
मैं पहले एएसपी लाइफसाइकिल चरण में उपयोगकर्ता नियंत्रण जोड़ नहीं सकता क्योंकि वे बटन क्लिक ईवेंट के जवाब में बनाए जा रहे हैं।
+1 और मेरी समस्या को हल करने के लिए धन्यवाद, धन्यवाद। :) –
उत्कृष्ट अनुवर्ती! –