我正在编写一个需要动态调用用户控制方法的页面。
我的页面上有一个GridView,在RowDataBound上我为每一行加载了这个用户控件。
在我的用户控件中,我有一个公共无效方法,我需要在加载此控件时调用。
我正在阅读有关反射的内容,但在我使用的代码中,我找不到用户控件上创建的方法。见代码:
UserControl x = (UserControl)LoadControl("../usercontrols/ucResultData.ascx");
x.GetType().InvokeMember("CreateData", BindingFlags.InvokeMethod, null, this.Page, null);
这是用户控件上的代码:
public void CriarGradeHorario()
{
...
}
答案 0 :(得分:1)
您正尝试在当前Page对象上调用方法CreateData
。您想要在用户控件对象上调用CriarGradeHorario
方法:
x.GetType()
.InvokeMember("CriarGradeHorario", BindingFlags.InvokeMethod, null, x, null);
但是,如果要以这种方式调用方法,则应考虑将其移出用户控件并将其放在类文件中。这样你就可以在不使用反射的情况下调用它。