2011-08-01 119 views
3

添加自定義控制我想在我的網站自定義的控制(注意:不是Web應用程序)asp.net網站中

以下是代碼

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.ComponentModel; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace AnkitControls 
{ 
    /// <summary> 
    /// Summary description for CustomTreeView 
    /// </summary> 
    public class CustomTreeViewControl : WebControl 
    { 

    } 
} 

的Default.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" Inherits="_Default" %> 
    <%@ Register Assembly="AnkitControls" Namespace="AnkitControls" TagPrefix="CustomCtrl" %> 
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <h2> 
     Welcome to ASP.NET! 
    </h2> 
    <p> 
     To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>. 
    </p> 
    <p> 
     You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409" 
      title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>. 
    </p> 
</asp:Content> 

當我編譯的網站,它給我錯誤的程序集。

錯誤=「類型或命名空間名稱AnkitControls'不存在命名空間存在‘AnkitControls’(是否缺少程序集引用?)」

+0

在您的web.config中引用了'AnkitControls'嗎? –

+0

CustomTreeViewControl.cs文件是否放置在本網站的App_Code文件夾中或另一個項目中? –

+0

這是CustomControls文件夾中的網站沒有在App_Code文件 – Ankit

回答

1

你檢查你的自定義組件的輸出二進制文件名AnkitControls .dll? 您是否已將它作爲參考添加到您的網站屬性中?

+0

這是一個網站,我把代碼。它可是沒有的DLL添加 – Ankit

+0

好吧,我認爲這是在重複使用目的的單獨項目 – mmorel

2

正確使用Register標籤:

<%@ Register TagPrefix="my" TagName="control" Src="~/Path/To/Your.ascx" %> 

您所指定的語法是當你的控制是另一個程序集中。

+0

然後,它給我的錯誤缺少裝配參考 – Ankit

+0

查看更新的答案。 –

2

您需要將DLL項目添加到您的解決方案並在您的Web項目中引用它,或者如果您在Web解決方案之外開發DLL,只需添加對編譯DLL的引用即可。接下來,您需要在您的web.config或頁面級別註冊該控件。我不建議在網站項目中開發自定義控件。

<%@ Register TagPrefix="ControlVendor" Assembly="ControlVendor" %> 

看看這個網站。 http://weblogs.asp.net/scottgu/archive/2006/11/26/tip-trick-how-to-register-user-controls-and-custom-controls-in-web-config.aspx

如果您在網站項目中創建自定義控件,該類必須駐留在App_Code文件夾中,但註冊並不是直截了當,因爲Microsoft預先使用ASP命名空間。我這樣做很困難,所以我創建了一個DLL項目。