【问题标题】:asp.net Button Onclick event did't fire its code behind functionasp.net Button Onclick 事件没有触发其代码隐藏函数
【发布时间】:2015-01-10 10:27:45
【问题描述】:

在 asp.net 页面中使用 asp 按钮。在后面的代码中将此按钮呈现为 html 字符串并分配给 div。

<asp:ImageButton ID="ProImg" runat="server" CssClass="Photo" ImageUrl="~/images/ProfilePage/pic.jpg"
                    ImageAlign="Middle" OnClick="ProImg_Click" />

渲染场景是

Control MyApps = tabsUL.FindControl("MyApp");
string MyAppshtml = RenderControl(MyApps);
outerTabInfo.InnerHtml =  MyAppTxt;

而rendercontrol函数是

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();
}

但它实际上并没有触发 ProgImg_Click 函数。函数是

protected void ProImg_Click(object sender, EventArgs e)
{
    //code process
}

我怎样才能做到....提前谢谢

【问题讨论】:

  • 这个方法你定义了吗,ProImg_Click ?
  • 您能否编辑您的问题并向我们展示您的 ProImg_Click 功能如何,并告诉我们您如何知道它没有执行?
  • 我在该函数上设置了断点,但它没有到达块...
  • @jai,请检查我的回答。
  • sry @Lajos 的答案在哪里...

标签: c# asp.net c#-4.0 c#-3.0


【解决方案1】:

您需要以编程方式附加事件

private string RenderControl(Control control)
{
    StringBuilder sb = new StringBuilder();
    StringWriter sw = new StringWriter(sb);
    HtmlTextWriter writer = new HtmlTextWriter(sw);
    if(control.Id=="ProImg"){
      control.Click += new System.EventHandler(this.ProImg_Click);

     }
    control.RenderControl(writer);
    return sb.ToString();
}

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 2013-03-12
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 2012-01-24
    相关资源
    最近更新 更多