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.
Hast du in der Codebehind-Datei auch das Using für den Namespace drinne?
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
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:
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