2012-11-27 48 views
10

的內容我認爲這是一個簡單的問題,直到我開始尋找答案,並意識到它是如此簡單我是誰擁有它用戶控件不呈現的ascx

我的用戶控制心不是任何顯示唯一的一個。我究竟做錯了什麼? (除了讓這是我的生活......)

控制:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ctrl.ascx.cs" Inherits="proj.UserControls.ctrl" %> 

asdjkldasfjasdfljdfasjklasdfjkl 

使用:的

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="page.aspx.cs" Inherits="proj.Admin.page" %> 

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
     <cc1:ctrl ID="test" runat="server" /> 
</asp:Content> 
+0

有什麼不對?根本沒有輸出?空輸出(我的意思是所有的包裝元素都在那裏,但是裏面沒有文字)? – J0HN

回答

17

變化: -

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %> 

<%@ Register TagPrefix="cc1" TagName="ctrl" Src="/path/to/ctrl.ascx" %> 

你錯過TagName,它代表按照控件聲明結腸的文本。你也沒有告訴引擎在哪裏找到源文件(Src屬性)。更改/path/to以表示從根到您的控件的路徑。

+0

謝謝。就是這樣。沒有Src。事實證明,另一種解決方案是在設計模式下將ascx頁面從解決方案資源管理器拖動到頁面,並讓vs重寫聲明。如果我對編寫代碼不是很偏執,我可能會盡早嘗試,但前幾天我在使用vs 2003,並且仍然感到寒戰...... – user1566694

2

代替

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %> 

使用

<%@ Register src="~/UserControls/ctrl.ascx" TagName="ctrl" tagprefix="cc1" %> 
3

如果您已經創建了自定義控件,那麼您應該添加自定義控件的dll的引用(從Visual Studio的ToolBox中選擇項目)。然後使用以下標籤頁面:

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>

如果您創建的用戶控件然後添加下面一行在你的頁面:

<%@ Register src="~/UserControls/ctrl.ascx" TagName="ctrl" tagprefix="cc1" %>

0

確保您沒有設置可見=「false」在包含您的控件的面板或div上。

這會爲我節省一個小時。

相關問題