2012-06-07 27 views
1

我想構建一個自定義控件ASP.NET 我通過在VS2010中創建一個Web應用程序並創建一個新的.ascx頁面開始。該頁面被稱爲「TestBox」,並且它只是一個帶有「This is a test」的單個TextBox控件作爲文本。C#ASP.NET自定義控件沒有顯示

我構建了該項目,然後將DLL包含在另一個網站中,以確保我能夠移動控件。基於一個教程,我發現here我添加以下代碼行至頁面頂部:

<%@ Register TagPrefix="TestControl" Namespace="TestControl" Assembly="TestControl" %> 

然後我說這個網頁本身:

<TestControl:TestBox ID="TestBox1" runat="server" /> 

代碼編譯和頁面加載時不會拋出任何錯誤,但是當它加載時它是完全空白的。通過引入故意的運行時錯誤,我確定TextBox確實正在加載,但控件本身仍然沒有顯示出來。

我錯過了什麼嗎?

代碼的系統testControl:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestBox.ascx.cs" Inherits="TestControl.TestBox" %> 
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged">This is a test</asp:TextBox> 

我沒碰過的設計代碼或以任何方式的.cs代碼。

編輯:想通了。我爲.CS文件聲明瞭一個命名空間,但不是.ASPX文件本身。

+1

你看過呈現的HTML,看看有沒有線索? – CodingGorilla

+0

只是看着它,沒有,沒有任何證據表明盒子存在。 實際上,有這個位: '

' '' '
' – Falterfire

+0

這很正常,這是頁面的視圖狀態。你可以發佈你的'TestControl'的代碼嗎? – CodingGorilla

回答

1

答案是我不得不向ASPX文件本身添加一個名稱空間,而不僅僅是底層代碼文件。我忘了將Class="TestControl.TestBox"添加到頁面聲明中。