ボタンとリテラルコントロールを持つ単純なASP.Netページがあります。ボタンをクリックすると、私は新しい動的コントロール(imagebutton)を生成し、HtmlTextWriterを介してリテラルにレンダリングしています。コントロールの作成時には、私も解雇されていないonClickイベントを追加しています。ここに私のコードは次のとおりです。動的に作成されたHtmlTextWriterでレンダリングされたコントロールはイベントを起動しません。
のaspx
<asp:Button ID="btnCreate" runat="server" Text="Create" OnClick="btnCreate_Click" />
<asp:Literal ID="lit" runat="server"></asp:Literal>
CS
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCreate_Click(object sender, EventArgs e)
{
ImageButton dynBtn = new ImageButton();
dynBtn.ID = "1";
dynBtn.ImageUrl = "http://cdn.mysitemyway.com/etc-mysitemyway/icons/legacy-previews/icons/matte-blue-and-white-square-icons-symbols-shapes/118240-matte-blue-and-white-square-icon-symbols-shapes-power-button.png";
dynBtn.Click += new ImageClickEventHandler(dynBtn_click);
lit.Text = RenderControl(dynBtn);
}
private void dynBtn_click(object sender, ImageClickEventArgs e)
{
Page.Response.Write("hello!");
}
private string RenderControl(Control control)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter writer = new HtmlTextWriter(sw);
control.RenderControl(writer);
return sb.ToString();
}
}
制御は、エラーなしで作成された取得されますが、イベントはfireingされていません。
テキストの代わりにリテラルにコントロールを追加しようとする – techspider