Laden...

Web Custom Control - Namespace wird nicht erkannt?

Erstellt von Iceskaarj vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.497 Views
I
Iceskaarj Themenstarter:in
85 Beiträge seit 2007
vor 16 Jahren
Web Custom Control - Namespace wird nicht erkannt?

Hi... möchte ein einfaches Custom-Control erstellen, das einen Text ausgibt.

Das Custom Control ist in als WebCustomControl1.cs in einer Web Control Library (CustomControls.dll) gespeichert und sieht so aus:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CustomControls
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
    public class WebCustomControl1 : WebControl
    {
        private string text;

        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]
        public string Text
        {
            get
            {
                return text;
            }

            set
            {
                text = value;
            }
        }

        protected override void Render(HtmlTextWriter output)
        {
            output.AddStyleAttribute("color", "yellow");
            output.Write(Text);
        }
    }
}

Die default.aspx (CustomControls.dll wurde als Referenz hinzugefügt) sieht so aus:


<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="cstm" Namespace="CustomControls" Assembly="CustomControls"  %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <link href="stylesheets/screen.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="javascripts/tools.js" />
    <script type="text/javascript" src="javascripts/mootools.v1.11.js" />
</head>
<body>
    <form id="form1" runat="server">    
    <div>
        <cstm:WebCustomControl1 ID="wcc1" runat="server" Text="^HAHAHA" />    
    </div>
    </form>
</body>
</html>

Allerdings erkennt das Programm die Controls nicht... es kommt folgende Fehlermeldung:

Element 'WebCustomControl1' is not a known element. This can occur if there is a compilation error in the Web site.

N
22 Beiträge seit 2008
vor 16 Jahren

Hast du in der Codebehind-Datei auch das Using für den Namespace drinne?

I
Iceskaarj Themenstarter:in
85 Beiträge seit 2007
vor 16 Jahren

ja, das bringt leider auch nichts....

I
256 Beiträge seit 2005
vor 16 Jahren

liegt die Dll im \bin verzeichniss?

I
Iceskaarj Themenstarter:in
85 Beiträge seit 2007
vor 16 Jahren

ja

I
256 Beiträge seit 2005
vor 16 Jahren

SP1 von VS 2005 oder hast VS 2008

Es schaut nämlich alles richtig aus, das einzige was ich auf die schnell gefunden hab was es ncoh sien könnte

http://geekswithblogs.net/ranganh/archive/2007/08/06/114452.aspx

lg

5.942 Beiträge seit 2005
vor 16 Jahren

Hallo zusammen

@Iceskaarj
Wie heisst die Assembly?
Normalerweise heisst die gleich, wie deine Klasse, d.h.
Assembly="CustomControls" -> Assembly="WebCustomControl1"

In der Unwissenheit kannst du auch noch folgenden Trick anwenden:

  • Assemly zur Toolbox hinzufügen und auf den Designer ziehen

Wenn du das gemacht hast, siehst du die korrekte deklarierun für die Register Direktive.


>

Was hat das damit zu tun?
Scheint dort eher um ASP.NET AJAX zu gehen.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011