C#我添加到页面的Foreach用户控件
我有这个密码:C#我添加到页面的Foreach用户控件,c#,C#,我有这个密码: protected void ddlTemplate_SelectedIndexChanged(object sender, EventArgs e) { Template t = new Template(); t.LoadById(Convert.ToInt32(ddlTemplate.SelectedItem.Value)); foreach (Widget w in t.TemplateWidgets) { User
protected void ddlTemplate_SelectedIndexChanged(object sender, EventArgs e)
{
Template t = new Template();
t.LoadById(Convert.ToInt32(ddlTemplate.SelectedItem.Value));
foreach (Widget w in t.TemplateWidgets)
{
UserControls_Widget ucWidget = (UserControls_Widget)LoadControl("~/UserControls/ucWidget.ascx");
ucWidget.WidgetTitle = w.Name;
ucWidget.Parameters = w.Parameters;
pnlWidgets.Controls.Add(ucWidget);
}
}
protected void lnkSubmit_Click(object sender, EventArgs e)
{
foreach (Control cc in pnlWidgets.Controls)
{
}
}
基本上,我想在DDLMetplate\u SelectedIndexChanged事件中查看我添加到页面的小部件。所以问题是如何获得我添加的用户控件。类似这样的东西
foreach(Control cc in pnlWidgets.Controls)
{
UserControls_Widget widget = cc as UserControls_Widget;
if (widget == null)
continue;
// Do stuff with widget
}
这就是你要找的东西吗?你可以将你的用户控件添加到
列表中,并循环浏览它,而不是循环浏览页面上的所有控件。否。如果小部件为空,则继续循环的下一次迭代。当小部件引用某些内容时,所有其他路径都会运行。是的,必须在事件之间保存到会话。我会这样做的。是的,我就是这么做的,如果是回发,从会话加载,如果不是,保存到会话。