一般我們在編寫模組的時候,有的模組完全可以重複使用在不同的頁面,重複的編寫同樣的大量相同控制項代碼實在煩人,雖然複製粘貼可以快捷解決,但個人感覺不太好,把這些模組的控制項合成一個控制項方便使用,何樂而不為呢!
最近看了控制項開發的方法,基本流程還是瞭解了,主要就是使用.ascx檔案。
我這裡是編寫的使用者登入的控制項,不是.NET內建的哦!
先看把,沒有寫css樣式的說:
這是我的解決方案:
現在開始開發控制項了:
1.建立個Web項目,然後建立一個使用者控制項檔案(.ascx 檔案)
代碼如下:
LoginOn.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LoginOn.ascx.cs" Inherits="UserControlTry.LoginOn" %><script runat="server"> public string userName { set { tbUserName.Text = value; } get { return tbUserName.Text; } } </script><div><asp:Label ID="lbUserName" runat="server" Text="使用者名稱:" Width="100"></asp:Label><asp:TextBox ID="tbUserName" runat="server"></asp:TextBox></div><br /><div><asp:Label ID="lbPassword" runat="server" Text="密碼:" Width="100"></asp:Label><asp:TextBox ID="tbPassword" runat="server" TextMode="Password" ></asp:TextBox></div><br /><div><asp:Button ID="btnLoginOn" runat="server" Text="登陸" Height="30" Width="60" /><asp:Button ID="btnReset" runat="server" Text="重設" Height="30" Width="60" OnClick="btnReset_Click" /></div>
2.然後建立一個網頁檔案(.aspx 檔案),應用該控制項就可以了,是不是很簡單呢!
ToUseUControl_LoginOn.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ToUseUControl_LoginOn.aspx.cs" Inherits="UserControlTry.ToUseUControl_LoginOn" %><!--如果將使用者控制項沒有在 web.config 中註冊,就需要在在網頁檔案(.aspx 檔案)中使用 Register 註冊了。--><%--<%@ Register TagPrefix="ycl" TagName="LoginOn" Src="~/LoginOn.ascx" %>--%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>使用者控制項開發測試</title></head><body><%--如果使用者控制項檔案中含有 Button、TextBox、ListBox 一類表單控制項,則在網頁檔案中,使用者控制項必須放在具有 runat=server 的表單標記內,不然會報錯。--%> <form id="form1" runat="server"> <div> <%--引用使用者控制項--%> <ycl:loginon ID="login" runat="server" userName="yechao"></ycl:loginon> </div> </form></body></html>
3.如果不想總是在網頁控制項中註冊自己編寫的Web控制項,就需要在 web.config 設定檔中註冊了
Web.config
<?xml version="1.0" encoding="utf-8"?><!-- 有關如何配置 ASP.NET 應用程式的詳細訊息,請訪問http://go.microsoft.com/fwlink/?LinkId=169433 --><configuration> <system.web> <pages> <controls> <!--如果將使用者控制項在 web.config 中註冊,就不需要在在網頁檔案(.aspx 檔案)中使用 Register 註冊了。--> <!--使用者控制項檔案(.ascx 檔案)和網頁檔案不能位於同一個目錄下。不然會報類似下面的錯誤--> <!--頁“/ToUseUControl_LoginOn.aspx”無法使用使用者控制項“/LoginOn.ascx”,因為此控制項已在 web.config 中註冊並且與該頁位於同一個目錄中。--> <add tagPrefix="ycl" tagName="LoginOn" src="~/controls/LoginOn.ascx" /> </controls> </pages> <compilation debug="true" targetFramework="4.0" /> </system.web></configuration>
原始碼下載
PS:使用者控制項開發-開始 我是在這看到控制項開發的方法的,雖然文章比較早,但知識是永恒的是吧 o(∩_∩)o 哈哈