用户自定义控件的问题

leisang 2004-08-27 10:30:37
就照着Quickstart写了个最简单的自定义控件,代码如下:
using System;
using System.Web;
using System.Web.UI;

namespace ControlBuilder
{

public class RichLabel : Control
{

protected override void Render(HtmlTextWriter output)
{
output.Write("{0} {1} {2}","<H2>", "Welcome to Control Development Text!", "</H2>");
}

}
}

然后就将其放到一个web页上,执行时总是出现下面的错误:
编译器错误信息: CS0234: 类型或命名空间名称“RichLabel”在类或命名空间“System.Web.UI.ControlBuilder”中不存在(是否缺少程序集引用?)

可是ControlBuilder是我自己的命名空间,怎么会跑到System.Web.UI下面去的?
请大家不吝赐教,谢谢
...全文
168 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
noahart 2004-08-27
  • 打赏
  • 举报
回复
问题出在命名空间上,它把你的ControlBuilder认作System.Web.UI.ControlBuilder
新建一个Web控件库,命名成ControlBuilder,程序集和默认命名空间名称都设置成MyControl.ControlBuilder
->添加类文件
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace MyControl.ControlBuilder
{

[DefaultProperty("Text"),
ToolboxData("<{0}:RichLabel runat=server></{0}:RichLabel>")]
public class RichLabel : System.Web.UI.WebControls.Label
{
private string text;

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

set
{
text = value;
}
}
protected override void Render(HtmlTextWriter output)
{
output.Write(Text);
}
}
}
然后在工具栏右键->添加移除项->浏览,选中你ControlBuilder工程路径下那个MyControl.ControlBuilder.dll->点确定后工具栏会出现一个RichLable的图标
把它放到页面上,html里会出现
<%@ Register TagPrefix="cc1" Namespace="MyControl.ControlBuilder" Assembly="MyControl.ControlBuilder" %>
<cc1:RichLabel id="RichLabel1" runat="server"></cc1:RichLabel>
cs文件里会出现
protected MyControl.ControlBuilder.RichLabel RichLabel1;
然后你加入Text属性
<cc1:RichLabel id="RichLabel1" Text="Hello" runat="server"></cc1:RichLabel>
运行后显示hello


leisang 2004-08-27
  • 打赏
  • 举报
回复
引用哪个?
2002pine 2004-08-27
  • 打赏
  • 举报
回复
你有没有加上引用
leisang 2004-08-27
  • 打赏
  • 举报
回复
leisang 2004-08-27
  • 打赏
  • 举报
回复
谢谢noahart(吞屎粉丝),问题已经解决了
CSDN_0 2004-08-27
  • 打赏
  • 举报
回复
同意楼上说

注意:命名空间(Namespace),注册(Register)

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧