如何修改内容和动态的用户控件创建许多情况下?

问题描述 投票:-2回答:2

我需要使用用户控件多次在同一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); 

与为每一个不同的参数。我该怎么办?

c# asp.net
2个回答
0
投票

您可以在一个循环中创建多个。确保给每一个唯一的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;

0
投票

我发现并解决两个问题: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);
}
© www.soinside.com 2019 - 2024. All rights reserved.