我需要使用用户控件多次在同一page.aspx
我与Visual Studio 2012和asp.net 4.0我试图做许多图形接收不同的参数每一个工作。
我有一个具有control.ascx.cs后面的代码与功能的用户control.ascx
public void myTask(string myParameter)
我有一个面板page.aspx
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
我曾与page.aspx.cs后面的代码
protected void Page_Load(object sender, EventArgs e)
{
UserControl cuc = (UserControl)LoadControl("~/cmmon/userCntrol/myusercontrol.ascx");
Panel1.Controls.Add(cuc);
我的代码显示的只是一个图形好看。
我愿意从page.aspx INT后面的代码page.aspx.cs像我的用户控件创建许多情况下并调用每个函数
myTask(myParameter);
与为每一个不同的参数。我该怎么办?
您可以在一个循环中创建多个。确保给每一个唯一的ID。
for (int i = 0; i < 5; i++)
{
WebUserControl1 cuc = (WebUserControl1)LoadControl("~/WebUserControl1.ascx");
cuc.ID = "Control" + i;
Panel1.Controls.Add(cuc);
}
然后,您可以基于该ID代码别的地方找到了控制。
WebUserControl1 uc = Panel1.FindControl("Control3") as WebUserControl1;
我发现并解决两个问题:1)如何将参数发送到控制对象。和2)如何引用在另一个C#页面的控制。
1)要发送参数控制对象我不得不定义变量接受参数的值,它在由对象控制完成:
using System.Web.UI.WebControls;
public partial class myControl : System.Web.UI.UserControl
{
public string variable { get; set; }
public void start(string parameter)
{
variable = parameter;
}
}
2)为了引用在另一个C#页面的控制。在页面指令应该是:
<%@ Reference Control="~/cmmon/userCntrol/myControl.ascx" %>
然后,VDWWD答案,在后面的代码你可以包含一个对象,如:
for (int i = 0; i < 5; i++)
{
WebUserControl1 cuc = (WebUserControl1)LoadControl("~/WebUserControl1.ascx");
cuc.ID = "Control" + i;
Panel1.Controls.Add(cuc);
}
并调用该函数因为我需要:
cuc.myTask(myParameter);
然后:
for (int i = 0; i < 5; i++)
{
WebUserControl1 cuc = (WebUserControl1)LoadControl("~/WebUserControl1.ascx");
cuc.ID = "Control" + i;
Panel1.Controls.Add(cuc);
cuc.myTask(myParameter);
}