【IT168技术文档】
我们知道,如果传一个不固定的值给自定义控件是比较困难的,以下方法希望能大家有所帮助。思路很简单,就是定义一个公共方法,然后在使用它的页面调用它。现在页面上有两个下拉框,drp1,drp2
1//UserControl1.aspx 2<%@ Control Language="c#" AutoEventWireup="false" Codebehind="UserControl1.ascx.cs" Inherits="Test.UserControl1.ascx.cs" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%> 3<asp:DropDownList id="drp1" AutoPostBack="True" runat="server"></asp:DropDownList> 4<asp:DropDownList id="drp2" AutoPostBack="True" runat="server"></asp:DropDownList> 5 6//UserControl1.ascx.cs 7using System; 8using System.Collections; 9using System.Data; 10using System.Web.UI; 11using System.Web.UI.WebControls; 12 13using namespace Test 14public class UserContorl1:UserControl 15{ 16protected DropDownList drp1; 17protected DropDownList drp2; 18 19public void OnInit(int num1,int num2) 20{ 21 BindDrp1(num1); 22 BindDrp2(num2); 23} 24//绑定drp1 25private void BindDrp1(int num) 26{ 27 ArrayList al=new ArrayList(); 28 ListItem lst; 29 for(int i=1;i<=num;i++) 30 { 31 lst=new ListItem("第"+i.ToString()+"轮",i.ToString()); 32 al.Add(lst); 33 } 34 drp1.DataSource=al; drp1.DataTextField="Text"; drp1.DataValueField="Value"; 35 drp1.DataBind(); drp1.SelectedValue=num.ToString(); 36} 37//绑定drp2 38private void BindDrp2(int num) 39{ 40 ArrayList al=new ArrayList(); 41 ListItem lst; 42 for(int i=1;i<=num;i++) 43 { 44 lst=new ListItem("第"+i.ToString()+"轮",i.ToString()); 45 al.Add(lst); 46 } 47 drp2.DataSource=al; drp2.DataTextField="Text"; drp2.DataValueField="Value"; 48 drp2.DataBind(); drp2.SelectedValue=num.ToString(); 49 } 50 } 51} 52