【问题标题】:Call C# code behind function from programatically created button从以编程方式创建的按钮调用函数背后的 C# 代码
【发布时间】:2017-05-11 15:02:47
【问题描述】:

在我的网络表单中,我从后面的代码中创建了按钮:

Button btnShowCase = new Button();
btnShowCase.ID = "btnShowCase_" + ticketNumber;
btnShowCase.CssClass = "BtnShowCase";
btnShowCase.Text = "Display";
btnShowCase.OnClientClick = "ShowCase";

在客户端点击我要执行的功能

protected void ShowCase(object sender, EventArgs e)
{
Do something
}

OnClientClick 不调用 ShowCase。我做错了什么?

【问题讨论】:

    标签: c# function webforms call


    【解决方案1】:

    而不是

    btnShowCase.OnClientClick = "ShowCase";
    

    试试

    btnShowCase.OnClick += ShowCase;
    

    ClientClick 调用在浏览器中运行的 Javascript;字符串参数是 Javascript 函数的名称。 Click 导致回发并调用服务器端方法;参数是与事件类型的委托匹配的方法。

    【讨论】:

    • 尝试 OnClick 时,出现错误:button.onclick inaccesible duo to its protection level。我试过这个:'btnShowCase.Click += new EventHandler(ShowCase);'
    • 不幸的是,从未到达展示功能。在客户端的 Crome 开发工具中,它看起来像这样:href="javascript:__doPostBack('btnShowCase_CAS-17125','')"
    【解决方案2】:

    OnClientClick 是一个事件处理器,应该这样设置:

    btnShowCase.OnClientClick += "ShowCase";
    

    而不是

    btnShowCase.OnClientClick = "ShowCase";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-03
      • 2011-03-21
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      相关资源
      最近更新 更多