私はいくつかのサーバコントロールを別々のアセンブリに持っており、何らかの選択に応じてそれらのいずれかをページに動的にロードしたいと思います。しかし、コントロールのサーバー側のイベントが発生していないという問題があるようです。アセンブリとフックアップイベントからサーバコントロールをロードする
コントロールの形式は次のとおりです。
[ToolboxData("<{0}:MyPlugin runat=server></{0}:MyPlugin>")]
public class MyPlugin : WebControl, PluginSystem.Interface.IMyPlugins
{
protected override void RenderContents(HtmlTextWriter output)
{
...
_btn = new Button();
_btn.ID = "btnSave";
this.Controls.Add(_btn);
_btn.Click += new EventHandler(btn_Click);
_btn.RenderControl(output);
}
void btn_Click(object sender, EventArgs e)
{
//do something. This doesn't fire
}
}
コントロールは、そのアセンブリからロードされます。
public static IMyPlugins GetPlugin(string assembly, string type)
{
var t = Type.GetType(type + ", " + assembly);
IMyPlugins rtn = (IMyPlugins)Activator.CreateInstance(t);
rtn.Initialise();
return rtn;
}
コントロールでイベントが発生しますように、私はページに読み込まれたアセンブリを注入する方法は?それは可能ですか?
ありがとうございました!