如何創建自定義控件(而不是ASCX控件),更重要的是,在您的項目中使用它?我不想創建一個單獨的項目或將它編譯爲DLLASP.NET自定義控件
2
A
回答
8
服務器控件應該被編譯成一個DLL。應該沒有理由害怕在項目中進行額外的組裝,這有助於創建良好的項目組織。
ASP.NET服務器控件實際上是程序集中的自定義類。他們沒有與他們關聯的「ascx」標記文件。
要使用ASP.NET服務器控件,您需要告訴ASP.NET在哪裏查找其類。
首先,創建一個類庫項目並將其添加到您的解決方案,我會打電話給我的「CustomControls.dll」。
一旦出現,添加一個簡單的類是你的三夏:
public class Hello : System.Web.UI.WebControl
{
public override Render(HtmlTextWriter writer)
{
writer.Write("Hello World");
base.Render(writer);
}
}
生成項目,並將其添加爲您主要網絡項目的引用。
現在,在您要使用該控件的ASPX頁面,需要註冊,所以將其添加爲在ASPX第一行Page指令後:
<%@ Register TagPrefix="Example" Namespace="CustomControls" Assembly = "CustomControls" %>
現在,你應該有一個名爲<的控件示例:您好,您可以使用>。在intellisense中顯示可能需要一分鐘。
1
爲控件創建類並生成解決方案。如果一切順利,控制器現在可以在工具箱上使用。
有時VS不更新工具箱。如果出現這種情況Register指令添加到頁面:
<%@ Register Assembly="NAME_OF_THE_ASSEMBLY" Namespace="NAMESPACE_OF_THE_CUSTOM_CONTROL" TagPrefix="cc1" %>
然後只需在頁面上使用控制:
<cc1:mycustompanel id="MyCustomPanel1" runat="server"><asp:TextBox id="TextBox1" runat="server"></asp:TextBox></cc1:mycustompanel>
1
如果你不想要一個* .ascx文件,你不想要一個單獨的項目,並且你不想要一個* .dll文件,你認爲剩下的是什麼?代碼必須在某個地方居住。
1
你提到你想避免創建一個單獨的項目。正如其他答覆所指出的那樣,僅僅創建一個新項目來存儲自定義控件並引用它就更爲常見了。這是可能的,但是,登記在同一項目中定義的控制,使用常規語法:
<%@ Register TagPrefix="Example" Namespace="CustomControls" Assembly="CustomControls" %>
凡「集結號」是其中兩個控制和頁面所在的裝配。如果您使用的是Web應用程序項目,而不是Web站點,這會更容易。
相關問題
- 1. ASP.NET自定義控件XML
- 2. ASP.NET自定義控件 - DataBinding
- 3. ASP.NET自定義Web控件
- 4. ASP.Net自定義控件
- 5. ASP.NET Web自定義控件
- 6. ASP.net自定義GridView控件
- 7. ASP.NET自定義控件控件狀態
- 8. 渲染ASP.NET中的自定義控件自定義控件派生自控制
- 9. 帶自定義事件的Asp.net控件
- 10. 自定義asp.net文件上傳控件
- 11. 渲染在ASP.NET自定義控件
- 12. asp.net在網站上自定義控件
- 13. ASP.NET自定義控件和Page.Request.Form []
- 14. 在ASP.NET中自定義ListView控件
- 15. ASP.Net自定義控件 - 覆蓋onkeyup
- 16. asp.net添加自定義控件頁
- 17. ASP.NET自定義控件 - 默認模板?
- 18. 自定義ASP.NET菜單控件
- 19. ASP.NET MVC 5 - 自定義html控件
- 20. ASP.NET動態創建自定義控件
- 21. Ninject,ASP.NET和自定義控件
- 22. ASP.NET自定義控件取消呈現
- 23. Asp.net自定義驗證器控件
- 24. 自定義ASP.NET容器控件表格
- 25. 創建asp.net MVC自定義控件
- 26. ASP.Net自定義控件渲染錯誤
- 27. ASP.NET StateBag和自定義控件
- 28. ASP.NET自定義控件屬性灰色
- 29. ASP.NET自定義控件屬性訪問
- 30. ASP.NET MVC4構建自定義控件
非常感謝!這不僅解決了我的問題,而且幫助我成爲了一名開發人員。 – 2008-11-20 19:09:05