请写一个用户控件myCtr.ascx,代码如下:
<%
...
@ Control Language="C#" AutoEventWireup="true" CodeFile="myCtr.ascx.cs" Inherits="myCtr"
%>
< asp:Button ID ="Button1" runat ="server" Text ="Button" />
< asp:TextBox style =" position: relative;" ID ="txtUserName" runat ="server" ></ asp:TextBox >
< asp:Button ID ="Button1" runat ="server" Text ="Button" />
< asp:TextBox style =" position: relative;" ID ="txtUserName" runat ="server" ></ asp:TextBox >
后台代码如下:
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class myCtr : System.Web.UI.UserControl
... {
protected void Page_Load(object sender, EventArgs e)
...{
}
public void InitCtrol(string UserName)
...{
txtUserName.Text = UserName;
}
public void ChangeLoction(string left,string top)
...{
txtUserName.Style.Add(HtmlTextWriterStyle.Left, left);
txtUserName.Style.Add(HtmlTextWriterStyle.Top, top);
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class myCtr : System.Web.UI.UserControl
... {
protected void Page_Load(object sender, EventArgs e)
...{
}
public void InitCtrol(string UserName)
...{
txtUserName.Text = UserName;
}
public void ChangeLoction(string left,string top)
...{
txtUserName.Style.Add(HtmlTextWriterStyle.Left, left);
txtUserName.Style.Add(HtmlTextWriterStyle.Top, top);
}
}
再写一个测试页面:
代码如下:
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="a.aspx.cs" Inherits="a"
%>
<% ... @ Reference Control="~/myCtr.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 > Untitled Page </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
</ div >
< asp:TextBox ID ="txtOld" runat ="server" ></ asp:TextBox >
</ form >
</ body >
</ html >
<% ... @ Reference Control="~/myCtr.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 > Untitled Page </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
</ div >
< asp:TextBox ID ="txtOld" runat ="server" ></ asp:TextBox >
</ form >
</ body >
</ html >
重点注意这句:<%@ Reference Control="~/myCtr.ascx" %>,一定要加,否则下面的后台设用无法找到类的。
protected void Page_Load(object
sender, EventArgs e)
... {
myCtr ctr = (myCtr)LoadControl("myCtr.ascx");
this.Form.Controls.Add(ctr);
ctr.InitCtrol("Hello"); //调用方法,达到设置Text值的效果。
ctr.ChangeLoction("200px", "200px"); //调用方法,达到改变位置的效果
}
... {
myCtr ctr = (myCtr)LoadControl("myCtr.ascx");
this.Form.Controls.Add(ctr);
ctr.InitCtrol("Hello"); //调用方法,达到设置Text值的效果。
ctr.ChangeLoction("200px", "200px"); //调用方法,达到改变位置的效果
}