嗨我喜欢在循环中添加动态添加WebUser控件
喜欢这个con1 con2 con3,或多或少取决于循环
有一个很好的方法来做到这一点
我的第一次尝试看起来像这样。但我不知道怎么告诉它使用下一个grpCon2
foreach (DataRow Group in AllGroups.Rows)
{
GroupListControl grpCon1 = new GroupListControl();
grpCon1.NickName = "STUFF";
grpCon1.GroupName = "HARD";
LiteralAddCOntrols.Text = @"<uc1:GroupListControl ID=""GrpCOn1"" runat=""server"" />";
}
答案 0 :(得分:2)
您需要使用loadcontrol(pathtoyourusercontrol),然后将控件返回到您想要的位置。
sharedUC uc = (sharedUC)LoadControl("~/sharedUC/control.ascx");
plcContent.Controls.Add(uc);
添加:
加载控件的页面aspx,您将能够使用类型化的引用。
答案 1 :(得分:0)
你可以这样做,但你必须记住两件事:
这是可能的,但一开始并不是那么简单。
以下是如何做到的详细说明。
答案 2 :(得分:0)
您可以使用这种方式并使用&#34; updatePanel&#34;动态更改控制器:
这里我使用&#34; userControls_DeviceController&#34;作为我的Usercontroller类名。
userControls_DeviceController FAN1;
userControls_DeviceController FAN2;
protected void Page_Load(object sender, EventArgs e)
{
FAN1 = (userControls_DeviceController)LoadControl("~/userControls/DeviceController.ascx");
saloon.Controls.Add(FAN1);
FAN2 = (userControls_DeviceController)LoadControl("~/userControls/DeviceController.ascx");
saloon.Controls.Add(FAN2);
}
并且为了自定义您的用户控件,您可以在页面上放置一个计时器并使用更新面板来更改指定usercontrol的属性。
protected void Timer1_Tick(object sender, EventArgs e)
{
int counter = Convert.ToInt32(Session["c"]);
FAN1.SetDeviceIndex(counter);//here I change usercontrol picture FAN1
FAN2.SetDeviceIndex(counter);//here I change usercontrol picture FAN2
counter++;
if (counter == 4)//I have 4 picture to changing.
{
counter = 0;
}
Session["c"] = counter;
UpdatePanel1.Update();
}
我希望它可以帮助你...