ユーザーコントロールをプラグインのように機能させようとしています。ユーザーの選択から動的に(リフレクションを使用して)ロードします。ボタンをクリックすると、ユーザー コントロールが読み込まれたことを示すように UI が調整されていることがわかりますが、コントロール自体はできません。ビューステートも使用しましたが、それでもコントロールが表示されません。
以下の私のコードを見つけてください:
protected void Page_Load(object sender, EventArgs e)
{
//the scenario should be: a user clicking a button and from there,
//loads the control just below it, but still in the same page.
if (Page.IsPostBack)
LoadUserControl();
//(a)I also tried to put in a ViewState but still nothing happens.
//if (ViewState["UserControl"] != null)
//{
// UserControl uc = (UserControl)ViewState["UserControl"];
// pnlReportControl.Controls.Add(LoadControl());
//}
}
//supposedly done after a button click
private void LoadUserControl()
{
enrolmentReports = string.Concat(Server.MapPath("~"), enrolmentDll);
assembly = Assembly.LoadFrom(enrolmentReports);
Type type = assembly.GetType("TZEnrollmentReports.EnrollmentUserControl");
enrolmentMethodInfos = type.GetMethods();
//also tried this way but also didn't work
//Page.LoadControl(type, null);
UserControl uc1 = (UserControl)LoadControl(type, null);
pnlReportControl.Controls.Add(uc1);
//(a)
//ViewState["UserControl"] = uc1;
}
助けてください。これは、複雑なプロセス全体の最初のステップにすぎません。そのレポートからデータセットを取得する必要があります。しかし、私はそれを別のスレッドに任せていると思います。
ありがとうございました!