在转发器中调用用户控件的方法?

时间:2009-07-03 13:43:21

标签: c# .net asp.net

我有一个用户控件,当调用方法时动态地将图像添加到asp面板。我已将此控件放在转发器中。我使用以下代码来调用该函数。我试过在page_load上调用这个函数,转发器的数据绑定,项目的数据绑定和oninit。

foreach (RepeaterItem repit in rpter.Items)
        {
            MyUserControl uc = rpter.FindControl("mycontrol") as MyUserControl;
            uc.MyMethod("var1","var2");
        }

调用usercontrol上的方法,但页面或页面的源视图中不显示任何图像。我哪里错了?

1 个答案:

答案 0 :(得分:1)

我很难理解你要做什么,所以这个答案可能不合适。你能处理转发器的ItemDataBound事件,在当前项中找到用户控件,并直接在用户控件上调用方法吗?

用户是否为每个转发器项控制相同的类型?如果是这样,您可以将用户控件转换为其类型而不是UserControl并直接调用该方法,而不是获取MethodInfo并调用它:

UserControl uc = repit.FindControl("ucontrol") as MyUserControl;
if (uc != null)
{
    uc.MyMethod("var1", "var2", "var3", "var4");
}