سؤال

ولدي تحكم بسيطة للغاية وأنا أحاول أن تجعل والتي تبدو مثل هذا:

using System;
using System.Web;
using System.Web.UI;

namespace CORE.BusinessObjects.Web.Controls
{
    public class TestControl : Control
    {
        protected override void Render(HtmlTextWriter writer)
        {
            writer.Write("Hello from TestControl!");
        }
    }
}

وادعو السيطرة على النحو التالي:

<%@ Register TagPrefix="Custom" 
             Namespace="CORE.BusinessObjects.Web.Controls" %>    
<Custom:TestControl ID="testControl" runat="server" Visible="true">
</Custom:TestControl>

وأفعل شيئا خاطئا؟ لقد فشلت أيضا لتشغيل أي عينات السيطرة وجدت على الانترنت. لا شيء ينفذ. يمكنني فقط تنفيذ منشئ عنصر التحكم. كل طريقة أخرى حاولت تجاوز مثل Render() أو CreateChildControls() لا يحصل تنفيذ.

وشكرا.

وتحرير: نسيت أن أذكر أن التحكم يتم تضمين على الصفحة مع صفحة رئيسية. سيطرة يعمل في الواقع على ما يرام في الصفحة الرئيسية، ولكن ليس خارجها.

هل كانت مفيدة؟

المحلول

ويجب عليك أن تحاول ما يلي:

أ. ترث من الطبقة System.Web.UI.Control.WebControl.

ب. تأكد من أن تقوم بإنشاء مكتبة السيطرة ويتم تصنيف مكتبة السيطرة على عهدك والمشار إليها في المشروع على شبكة الإنترنت ذات الصلة. اختياريا، إضافة إلى الأدوات واسحبه إلى النموذج من هناك. يجب أن أيضا إضافة المرجع في خطوة واحدة.

وج. تأكد من أن إعلان التحكم الخاصة بك لديه سمة Assembly الذي يشير إلى اسم التجميع السيطرة المشار إليها:

<%@ Register TagPrefix="Custom" Assembly="CORE.BusinessObjects" Namespace="CORE.BusinessObjects.Web.Controls" %>
<Custom:TestControl ID="testControl" runat="server" Visible="true" />

نصائح أخرى

وتحاول وراثة من CompositeControl أو WebControl

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top