单击按钮后事件不会触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击按钮后事件不会触发相关的知识,希望对你有一定的参考价值。

我为一个项目创建了一个网站,您可以在该网站上注册。它已连接到SQL数据库。

我正在尝试创建一个页面,管理员可以在其中查看有关不同现有用户的信息,并删除其中一些用户。

问题是,禁令系统的工作方式如下:所有用户都有一个单独的禁止按钮,其ID是用户名的ID,然后,如果管理员想禁止用户,则他单击用户名旁边的禁止按钮,然后会触发一个事件,并且该按钮的ID用户单击的用户名(如我所说,等于用户名)随查询一起发送,并且删除具有该用户名的每个用户。

当我单击由后面的代码生成的按钮之一时,该事件不会触发,但是如果我在html aspx页面中设置了具有完全相同的属性的按钮,则效果很好。

这是我后面的代码:


    public DbConnector Dbconnector = new DbConnector();

    public string htmllist = "";

    protected void Page_Load(object sender, EventArgs e)
    
        if (Session["user"] == null) Server.Transfer("logincode.aspx");
        if (Session["admin"] == null)
        
            Server.Transfer("HomePage.aspx");
        
        else
        
            DbConnector dbc = new DbConnector();
            SqlDataReader reader = dbc.read("SELECT * FROM UsersTable ORDER BY id");
            while (reader.Read())
            
                htmllist += $"<tr><td class=\"id\">reader["Id"].ToString()</td>";
                htmllist += $"<td>reader["Username"].ToString()</td>";
                htmllist += $"<td>reader["Password"].ToString()</td>";
                htmllist += $"<td class = \"mail\">reader["Email"].ToString()</td>";
                htmllist += $"<td>reader["IsAdmin"].ToString()</td>";
                htmllist += $"<td><asp:Button runat=\"server\" name=\"reader["Username"].ToString()\" id=\"reader["Username"].ToString()\" class=\"btn\" value=\"Remove User\" OnClick=\"BanUser\"/></td></tr>";
                htmllist += "<br />";
            
            dbc.closeconnection();
        
    
    protected void BanUser(object sender, EventArgs e)
    
        Button button = (Button)sender;
        string buttonid = button.ID;
        string banquery = $"DELETE FROM UsersTable WHERE Username = 'buttonid';";
        new DbConnector().ExecuteCRUDQuery(banquery);
    

我一直在尝试修复此问题几个小时,但无济于事。有人知道我做错了吗?

编辑

我想提一下,我使用了inspect元素来确保正确设置了按钮ID。这是与触发事件不起作用有关。

答案

1-禁止用户不等于从数据库中删除该用户,因此请考虑将来可能要撤消。2-您正在使用字符串数据类型作为id。 id始终是数字。3-通过javascript或JQuery触发事件要容易得多。你为什么不使用它们?4-在查询中您要设置条件

WHERE Username = 'buttonid'

您要将用户名等于id,不应该是

WHERE Id = 'buttonid'

以上是关于单击按钮后事件不会触发的主要内容,如果未能解决你的问题,请参考以下文章

单元格中带有按钮的 Xamarin Telerik ListView - 按钮的单击事件不会触发

对于以编程方式创建的 UIButton,有时不会触发按钮单击事件

单击事件未触发的动态按钮

单击事件未在引导单选按钮组中触发

单击事件不在引导单选按钮组中触发

显示软键盘时,Android 设备上的按钮单击事件未触发。