關於:Error 16:The type name 'CustomTextBox' does not exist in the type 'CustomControl.CustomControl'

dragon432503 2006-01-07 03:28:25
我在命名空間:CustomControl中定義如下控件 public class CustomTextBox : TextBox
然後在aspx中調用CustomTextBox控件,如果不加入Text =<%# DataBinder.Eval(Container.DataItem, "RowState")%>此句則正常,一但加入則會報如題所示的錯誤,CustomTextBox只是在TextBox的基礎上擴展了幾個屬性!
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cat_hsfz 2006-01-10
  • 打赏
  • 举报
回复
竟然那个东西也有关?它不仅仅是提供给toolbox的吗?MS东西也太过喜欢自作聪明了吧,呵呵……
dragon432503 2006-01-10
  • 打赏
  • 举报
回复
問題解決了,我沒有把CustomControl中自動生成的代碼註釋:
/* [DefaultProperty("Text")]
[ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class CustomControl : WebControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
}

set
{
ViewState["Text"] = value;
}
}

protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text);
}
}*/
謝謝Cat_hsfz老兄!!
dragon432503 2006-01-10
  • 打赏
  • 举报
回复
呵呵!如果不加Assembly那一句的話就會報:
Error 2 Unknown server tag 'tf:CustomTextBox'.
dragon432503 2006-01-09
  • 打赏
  • 举报
回复
TO: cat_hsfz()
我的註冊語句如下:
<%@ Register TagPrefix="tf" Namespace="CustomControl" Assembly ="CustomControl" %>
其實如果不加Text =<%# DataBinder.Eval(Container.DataItem, "RowState")%>時是沒問題的!
下面是控件的代碼:
namespace CustomControl
{
public class CustomTextBox : TextBox
{
private int FCol, FRow;
private String FFieldName, FOp;//用於查詢時使用FieldName為關聯的字段名,FOp為操作符
public CustomTextBox()
{
//
FFieldName = "";
FOp = "";
}
/// <summary>
/// 得到和設定其在Temple列中的列號
/// </summary>
public int Col
{
get { return FCol; }
set { FCol = value; }
}
/// <summary>
/// 得到各設定其在Temple列中的行號
/// </summary>
public int Row
{
get { return FRow; }
set { FRow = value; }
}
/// <summary>
/// 得到和設定要查找的字段名
/// </summary>
public String FieldName
{
get { return FFieldName; }
set { FFieldName = value; }
}
/// <summary>
/// 得到和設定操作符
/// </summary>
public String Op
{
get { return FOp; }
set { FOp = value; }
}
/// <summary>
/// 得到查詢字符串
/// </summary>
/// <returns></returns>
public String SearchString()
{
String SQL="";
if (Text!="")
{
if (Op == "%")
{
SQL = FieldName + " like '%" + Text + "%' ";
}
else
SQL = FieldName + " " + Op + " '" + Text + "' ";
}
return SQL;
}
}
}
調用:
<tf:CustomTextBox ID="TxtState" runat="server" ReadOnly="True" Text =<%# DataBinder.Eval(Container.DataItem, "RowState")%> FieldName="RowState"></tf:CustomTextBox>
cat_hsfz 2006-01-09
  • 打赏
  • 举报
回复
如果仅仅这样写呢:
<%@ Register TagPrefix="tf" Namespace="CustomControl" %>

如果在同一个Solution里面,一起Build到/bin里面,应该不写Assembly也可以找得到的。
cat_hsfz 2006-01-07
  • 打赏
  • 举报
回复
根据错误提示,它提到"CustomControl.CustomControl",也就是你用@Register注册WebControl的时候是不是写了两次CustomControl?注册WebControl据我记得只需要写namespace,不用写type吧。

62,047

社区成员

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

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

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

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