我有一个用户控件,当调用方法时动态地将图像添加到asp面板。我已将此控件放在转发器中。我使用以下代码来调用该函数。我试过在page_load上调用这个函数,转发器的数据绑定,项目的数据绑定和oninit。
foreach (RepeaterItem repit in rpter.Items)
{
MyUserControl uc = rpter.FindControl("mycontrol") as MyUserControl;
uc.MyMethod("var1","var2");
}
调用usercontrol上的方法,但页面或页面的源视图中不显示任何图像。我哪里错了?
答案 0 :(得分:1)
我很难理解你要做什么,所以这个答案可能不合适。你能处理转发器的ItemDataBound事件,在当前项中找到用户控件,并直接在用户控件上调用方法吗?
用户是否为每个转发器项控制相同的类型?如果是这样,您可以将用户控件转换为其类型而不是UserControl并直接调用该方法,而不是获取MethodInfo并调用它:
UserControl uc = repit.FindControl("ucontrol") as MyUserControl;
if (uc != null)
{
uc.MyMethod("var1", "var2", "var3", "var4");
}