C# 从codebehind将OnClick添加到按钮

C# 从codebehind将OnClick添加到按钮,c#,asp.net,button,onclick,C#,Asp.net,Button,Onclick,我正试图从代码背后向按钮添加OnClick属性。根据参与元素是否为0,将确定添加哪个OnClick属性。当我单击带有以下代码的按钮时,会出现以下错误: “Microsoft JScript运行时错误: Sys.WebForms.PageRequestManagerServerErrorException:回发无效 或回调参数。在配置或页面中使用启用事件验证。出于安全目的, 此功能验证回发或回调事件的参数是否正确 源于最初呈现它们的服务器控件。如果 数据有效且符合要求,请使用 ClientScri

我正试图从代码背后向按钮添加OnClick属性。根据参与元素是否为0,将确定添加哪个OnClick属性。当我单击带有以下代码的按钮时,会出现以下错误:

“Microsoft JScript运行时错误: Sys.WebForms.PageRequestManagerServerErrorException:回发无效 或回调参数。在配置或页面中使用启用事件验证。出于安全目的, 此功能验证回发或回调事件的参数是否正确 源于最初呈现它们的服务器控件。如果 数据有效且符合要求,请使用 ClientScriptManager.RegisterForEventValidation方法,以便 注册回发或回调数据以进行验证。“

我做错了什么

ASPX


如果要动态附加按钮的事件,则需要使用按钮的CommandName,并在ItemCommand事件中捕获事件

主要优点是可以捕获单击的行

protected void Dl1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || 
       e.Item.ItemType == ListItemType.AlternatingItem)
    {
        .... 
        Button SignupButton = (Button)e.Item.FindControl("SignupButton");
        if (Attending == 0)
        {
            SignupButton.Text = "Attend";
            SignupButton.Attributes.Add("class", "btn btn-large btn-success");
            SignupButton.CommandName = "Attend";
        }
        else
        {
            SignupButton.Text = "Remove";
            SignupButton.Attributes.Add("class", "btn btn-large btn-danger");
            SignupButton.CommandName = "Remove";
        }
    }
}

protected void Dl1_ItemCommand(object source, DataListCommandEventArgs e)
{
    if (e.CommandName == "Attend")
    {
        Response.Redirect("Default.aspx?msg=work");
    }
    else if (e.CommandName == "Remove")
    {
        Response.Redirect("Default.aspx?msg=gone");
    }
}
用这个

AddHandler btn.Click, AddressOf [FunktionName]
使用以下代码

Button1.Attributes.Add("OnClick","btn_Click");

这是点击按钮的方法

protected void btn_Click(object sender, EventArgs e)
{
   do anything...        
}

Win,当我单击页面上的任何按钮时,即使您进行了修改,我仍然会收到相同的Microsoft JScript运行时错误。嗯,我不能复制它。这可能与其他代码有关。你能创建一个独立的aspx(没有母版页),复制上面的代码,并调试它吗?
Button1.Attributes.Add("OnClick","btn_Click");
Button1.Click += new EventHandler(btn_Click);
protected void btn_Click(object sender, EventArgs e)
{
   do anything...        
}