在控件.ascx.cs声明控件属性
private int _ClassID = 0;
public int ClassID
{
get { return _ClassID; }
set { _ClassID= value; }
}
在aspx页面 <uc1:TC ID="TID" runat="server" ClassID="100" />这样可以给想要传参数的控件传参数传值,
在aspx页面
<uc1:UC_UserClass id="UC_UserClass1" runat="server"></uc1:UC_UserClass>
后台.aspx.cs代码
protected UC_UserClass UC_UserClass1;
这句是重点,默认我们在添加的时候是不会添加的,
在VS2005里很好用但是在VS2003里面就麻烦了,要自己手动来添加,而且变量名要跟前面页面中一样
以前用的VS2005开发一点问题都没有,现在再回头用了VS2003感觉很郁闷
好不容易才搞定 朋友们可以试一下哦。
if(!Page.IsPostBack)
{
UC_UserClass1.ClassID=123456789; //你想传的值
}
//这样就可以给他传值了
//下面还可以获得自定义控件上的控件
DropDownList drp1=UC_UserClass1.FindControl("drp1") as DropDownList;
当然除了传值还可以调用里面的public方法和public函数
-------------------------------------------------------------------------------------------------
首先我们需要一个页面 default
01 |
<%@ Page Language= "C#" AutoEventWireup= "true" CodeFile= "Default.aspx.cs" Inherits= "_Default" %> |
03 |
<%@ Register Src= "~/WebUserControl.ascx" TagPrefix= "uc1" TagName= "WebUserControl" %> |
08 |
<html xmlns= "http://www.w3.org/1999/xhtml" > |
10 |
<meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> |
14 |
<form id= "form1" runat= "server" > |
16 |
<uc1:WebUserControl runat= "server" ID= "WebUserControl" /> |
我们可以看到
1 |
<uc1:WebUserControl runat= "server" ID= "WebUserControl" /> |
这里我们有一个用户控件 WebUserControl 在我们的页面里面引入了这个用户控件 这个时候我们看另外一边,去看看我们的控件内容
先看一眼我们的ascx文件
1 |
<%@ Control Language= "C#" AutoEventWireup= "true" CodeFile= "WebUserControl.ascx.cs" Inherits= "WebUserControl" %> |
2 |
<asp:Label ID= "Label1" runat= "server" Text= "Label" ></asp:Label> |
看第3行很明显这个玩意就输出一行文本 由label控件来完成这个事情那么我们的目标是
没有蛀牙(你滚)
我们的目标是让这个空间的输出根据我们default页面传入的参数而变化
那么我们看看空间的cs文件
02 |
using System.Collections.Generic; |
06 |
using System.Web.UI.WebControls; |
08 |
public partial class WebUserControl : System.Web.UI.UserControl |
10 |
protected void Page_Load( object sender, EventArgs e) |
14 |
public void SetLable( string value) |
16 |
this .Label1.Text = value; |
我们定义了一个
1 |
public void SetLable( string value) |
方法 这个方法接受一个参数并且把这个参数的值绑定到label上也就是之前的目标 控件功能根据某个值得变化而变化
我们已经明白了控件怎么接收参数 那么我们怎么在default页面传参呢?
现在回头看default 我们来看default的cs文件
02 |
using System.Collections.Generic; |
06 |
using System.Web.UI.WebControls; |
08 |
public partial class _Default : System.Web.UI.Page |
10 |
protected void Page_Load( object sender, EventArgs e) |
12 |
this .WebUserControl.SetLable( "ddd" ); |
这一句
1 |
this .WebUserControl.SetLable( "ddd" ); |
this.WebUserControl我们获得了我们控件的对象
这个时候后面联想会帮助你找到用户控件里的SetLable赋值方法然后赋值就行。
这样就实现了在总页调用用户自定义控件 并且传入参数操作自定义控件的功能。