c# - 动态设置 html 表格中按钮的 OnClick

标签 c# asp.net button

我正在动态创建一个表格,每一行将包含一个按钮,这个按钮将调用一个函数,每个按钮将处理不同的参数,例如,

    string Parameter1 = "MyValue";
    string Parameter2 = "MyOthervalue";

    HtmlInputButton input = new HtmlInputButton();
    input.ID = "Button1";
    input.Value = "button";
    input.Attributes.Add("onclick", "MyFunction(" + Parameter1 + "," + Parameter2 + ");");

    td = new HtmlTableCell();
    td.Align = "center";
    td.Controls.Add(input);
    tr.Cells.Add(td);

当用户单击按钮时,我需要运行 MyFunction,然后刷新页面以查看更改。

我知道也许我可以打开第二个页面并发送 URL 中的参数,但我想使用同一页面中的代码,然后重新加载页面。

最好的方法是什么。

谢谢

编辑。

我能够通过以下方式解决它:

    input = new Button();
    input.Text = "Click Me";
    input.CommandArgument = "3|Parameter3";
    input.Command += new CommandEventHandler(Button_Handler);

    td = new HtmlTableCell();
    td.Align = "center";
    td.Controls.Add(input);

    tr.Cells.Add(td);
    tbTable.Rows.Add(tr);



public void Button_Handler(object sender, CommandEventArgs e)
{
    Button mybutton = (Button)sender;
    string[] Parameters = e.CommandArgument.ToString().Split('|');
    mybutton.Text = Parameters[0] + "-" + Parameters[1];
    //Call MyFunction(Parameters[0], Parameters[1]);

}

最佳答案

我有一个技巧,您可以使用隐藏按钮和隐藏字段:

HTML:

<script type="text/javascript">
    function MyFunction() {
        // do something
        document.getElementById("<%= hid.ClientID %>").value = "some value";

        // trigger hidden button click
        document.getElementById("<%= hiddenButton.ClientID %>").click();
    }
</script>

<asp:HiddenField ID="hid" runat="server" />
<asp:Button ID="hiddenButton" runat="server" OnClick="hiddenButton_Click" style="display:none" />

隐藏代码:

protected void hiddenButton_Click(object sender, EventArgs e)
{
     // your business goes here
     string value = hid.Value;
}

关于c# - 动态设置 html 表格中按钮的 OnClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14273660/

相关文章:

c# - 如何在 asp.net mvc 中选择一个选择列表项?

asp.net - 无法读取配置节 'system.servicemodel',因为它缺少节声明

css - 水平菜单,不是整个框在 CSS 中可点击

c# - 获取没有标题的窗口句柄.. (C#)

c# - 单击按钮时逐个添加对象 MVC C#

c# - 为什么我不能使用 Humanizer 库中的 TextInfo.ToTitleCase 方法?

html - 显示器上的边距产生不同的效果

Android,重新定义搜索按钮

c# - 参数字典包含不可为空类型 'idd' 的参数 'System.Int32' 的空条目

c# - 提交 AJAX 请求时的 Controller 方法