自定义控件传值

        我们知道,如果传一个不固定的值给自定义控件是比较困难的,以下方法希望能大家有所帮助。 思路很简单,就是定义一个公共方法,然后在使用它的页面调用它。 现在页面上有两个下拉框, drp1,drp2
 1 None.gif // UserControl1.aspx
 2 None.gif <% @ Control Language = " c# "  AutoEventWireup = " false "  Codebehind = " UserControl1.ascx.cs "  Inherits = " Test.UserControl1.ascx.cs "  TargetSchema = " http://schemas.microsoft.com/intellisense/ie5 " %>
 3 None.gif < asp:DropDownList id = " drp1 "  AutoPostBack = " True "  runat = " server " ></ asp:DropDownList >
 4 None.gif < asp:DropDownList id = " drp2 "  AutoPostBack = " True "  runat = " server " ></ asp:DropDownList >
 5 None.gif
 6 None.gif // UserControl1.ascx.cs
 7 None.gif using  System;
 8 None.gif using  System.Collections;
 9 None.gif using  System.Data;
10 None.gif using  System.Web.UI;
11 None.gif using  System.Web.UI.WebControls;
12 None.gif
13 None.gif using   namespace  Test
14 None.gif public   class  UserContorl1:UserControl
15 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
16InBlock.gifprotected DropDownList drp1;
17InBlock.gifprotected DropDownList drp2;
18InBlock.gif
19InBlock.gifpublic void OnInit(int num1,int num2)
20ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
21InBlock.gif  BindDrp1(num1);
22InBlock.gif  BindDrp2(num2);
23ExpandedSubBlockEnd.gif}

24InBlock.gif//绑定drp1
25InBlock.gifprivate void BindDrp1(int num)
26ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
27InBlock.gif    ArrayList al=new ArrayList();
28InBlock.gif    ListItem lst;
29InBlock.gif    for(int i=1;i<=num;i++)
30ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
31InBlock.gif        lst=new ListItem(""+i.ToString()+"",i.ToString());
32InBlock.gif        al.Add(lst);
33ExpandedSubBlockEnd.gif    }

34InBlock.gif    drp1.DataSource=al; 
           drp1.DataTextField
="Text";
          drp1.DataValueField
="Value";
35InBlock.gif    drp1.DataBind(); 
           drp1.SelectedValue
=num.ToString();
36ExpandedSubBlockEnd.gif}

37InBlock.gif//绑定drp2
38InBlock.gifprivate void BindDrp2(int num)
39ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
40InBlock.gif    ArrayList al=new ArrayList();
41InBlock.gif    ListItem lst;
42InBlock.gif    for(int i=1;i<=num;i++)
43ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
44InBlock.gif       lst=new ListItem(""+i.ToString()+"",i.ToString());
45InBlock.gif       al.Add(lst);
46ExpandedSubBlockEnd.gif    }

47InBlock.gif    drp2.DataSource=al;          
          drp2.DataTextField
="Text";    
          drp2.DataValueField
="Value";
48InBlock.gif   drp2.DataBind(); 
          drp2.SelectedValue
=num.ToString();
49ExpandedSubBlockEnd.gif  }

50ExpandedBlockEnd.gif }

51 None.gif}
52 None.gif

前面很简单,现在看我们在页面中怎样子调用前面的这个自定义控件了。
None.gif <% @ Page language = " c# "  Codebehind = " WebForm2.aspx.cs "  AutoEventWireup = " false "  Inherits = " WebForm2 "   %>
None.gif
<% @ Register TagPrefix = " uc1 "  TagName = " UserControl11 "  Src = " UserControl1.ascx "   %>
None.gif
<! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.0 Transitional//EN "   >
None.gif
< HTML >
None.gif    
< HEAD >
None.gif        
< title > WebForm2 </ title >
None.gif        
< meta name = " GENERATOR "  Content = " Microsoft Visual Studio .NET 7.1 " >
None.gif        
< meta name = " CODE_LANGUAGE "  Content = " C# " >
None.gif        
< meta name = " vs_defaultClientScript "  content = " JavaScript " >
None.gif        
< meta name = " vs_targetSchema "  content = " http://schemas.microsoft.com/intellisense/ie5 " >
None.gif    
</ HEAD >
None.gif    
< body MS_POSITIONING = " GridLayout " >
None.gif        
< form id = " Form1 "  method = " post "  runat = " server " >                 
None.gif            
< uc1:UserControl1 id = " UserControl11 "  runat = " server " ></ uc1:UserControl1 >         
None.gif        
</ form >
None.gif    
</ body >
None.gif
</ HTML >
None.gif
None.gif
// 部分后台代码
None.gif
public   class  WebForm2 : Page
None.gif
protected  UserControl1 UserControl11;
None.gif
// 这句是重点,默认我们在添加的时候是不会添加的,
None.gif
// 要自己手动来添加,而且变量名要跟前面页面中一样
None.gif
private   void  Page_Load( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
// 在此处放置用户代码以初始化页面
InBlock.gif

InBlock.gif            
if(!Page.IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif            UserControl11.OnInit(
1020);
ExpandedSubBlockEnd.gif}

InBlock.gif
//这样就可以给他传值了
InBlock.gif
//下面还可以获得自定义控件上的控件
InBlock.gif
            DropDownList drp1=UserControl11.FindControl("drp1"as DropDownList;
InBlock.gif

转载于:https://www.cnblogs.com/Oceanchip/archive/2005/06/11/172736.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值