恩自定义控件html
写个东西来复用的感受。今儿看到这个东西,就以为这确定是要用来服用的吧喂,既然要服用就要给参数。否则这玩意不能自定义还复用个屌啊。。。。c#
首先咱们须要一个页面 defaultui
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register Src="~/WebUserControl.ascx" TagPrefix="uc1" TagName="WebUserControl" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <uc1:WebUserControl runat="server" ID="WebUserControl" /> </div> </form> </body> </html>
咱们能够看到this
<uc1:WebUserControl runat="server" ID="WebUserControl" />
这里咱们有一个用户控件 WebUserControl 在咱们的页面里面引入了这个用户控件 这个时候咱们看另一边,去看看咱们的控件内容code
先看一眼咱们的ascx文件orm
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
看第3行很明显这个玩意就输出一行文本 由label控件来完成这个事情那么咱们的目标是server
没有蛀牙(你滚)xml
咱们的目标是让这个空间的输出根据咱们default页面传入的参数而变化htm
那么咱们看看空间的cs文件对象
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class WebUserControl : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } public void SetLable(string value) { this.Label1.Text = value; } }
咱们定义了一个
public void SetLable(string value)
方法 这个方法接受一个参数而且把这个参数的值绑定到label上也就是以前的目标 控件功能根据某个值得变化而变化
咱们已经明白了控件怎么接收参数 那么咱们怎么在default页面传参呢?
如今回头看default 咱们来看default的cs文件
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { this.WebUserControl.SetLable("ddd"); } }
这一句
this.WebUserControl.SetLable("ddd");
this.WebUserControl咱们得到了咱们控件的对象
这个时候后面联想会帮助你找到用户控件里的SetLable赋值方法而后赋值就行。
这样就实现了在总页调用用户自定义控件 而且传入参数操做自定义控件的功能。
(着文件一前一后和PHP差异有点大感受怪的一逼。。。。。)