asp.net向自定义控件传递参数-两个例子

本文介绍如何在ASP.NET中使用用户控件,并通过示例详细解释了如何在主页面向用户控件传递参数及如何在用户控件中接收这些参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在控件.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" %>
02  
03 <%@ Register Src="~/WebUserControl.ascx" TagPrefix="uc1" TagName="WebUserControl" %>
04  
05  
06 <!DOCTYPE html>
07  
08 <html xmlns="http://www.w3.org/1999/xhtml">
09 <head runat="server">
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
11     <title></title>
12 </head>
13 <body>
14     <form id="form1" runat="server">
15     <div>
16         <uc1:WebUserControl runat="server" ID="WebUserControl" />
17     </div>
18     </form>
19 </body>
20 </html>

我们可以看到

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文件

01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Web;
05 using System.Web.UI;
06 using System.Web.UI.WebControls;
07  
08 public partial class WebUserControl : System.Web.UI.UserControl
09 {   
10     protected void Page_Load(object sender, EventArgs e)
11     {
12     }
13  
14     public void SetLable(string value)
15     {
16         this.Label1.Text = value;
17     }
18 }

我们定义了一个

1 public void SetLable(string value)

方法 这个方法接受一个参数并且把这个参数的值绑定到label上也就是之前的目标 控件功能根据某个值得变化而变化

我们已经明白了控件怎么接收参数 那么我们怎么在default页面传参呢?

现在回头看default 我们来看default的cs文件

01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Web;
05 using System.Web.UI;
06 using System.Web.UI.WebControls;
07  
08 public partial class _Default : System.Web.UI.Page
09 {
10     protected void Page_Load(object sender, EventArgs e)
11     {
12         this.WebUserControl.SetLable("ddd");
13     }
14 }

这一句

1 this.WebUserControl.SetLable("ddd");

this.WebUserControl我们获得了我们控件的对象

这个时候后面联想会帮助你找到用户控件里的SetLable赋值方法然后赋值就行。

这样就实现了在总页调用用户自定义控件 并且传入参数操作自定义控件的功能。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值