c# - 我的按钮没有回发?我将它与 Javascript 绑定(bind)在一起,而 Javascript 又与 div 绑定(bind)在一起

标签 c# javascript jquery asp.net html

嘿,大家好,我的按钮没有回发?我将它与 Javascript 绑定(bind)在一起,如下所示:

<script type="text/javascript">
function confirm_delete()
{
  if (confirm("Are you sure you want to delete this comment?")==true)
    return true;
  else
    return false;
}
</script>
<p>
<asp:Button ID="btn" OnClientClick="if(confirm_delete()){/* post back*/}else{return false;};" OnClick="btnDelete_Click" runat="server" CssClass="Btn" Text="delete"/>

但是当我单击“确定”确认不启动回发时,如果我手动单击该按钮,则会启动回发吗?

private void PopulateWallPosts(string userId)
{

    using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;"))
    {
        cn.Open();
        using (OdbcCommand cmd = new OdbcCommand("SELECT idWallPosting, wp.WallPostings, p.PicturePath FROM WallPosting wp LEFT JOIN User u ON u.UserID = wp.UserID LEFT JOIN Pictures p ON p.UserID = u.UserID WHERE wp.UserID=" + userId + " ORDER BY idWallPosting DESC", cn))
        {
            //("SELECT wp.WallPostings, p.PicturePath FROM WallPosting wp LEFT JOIN [User] u ON u.UserID = wp.UserID LEFT JOIN Pictures p ON p.UserID = u.UserID WHERE UserID=" + userId + " ORDER BY idWallPosting DESC", cn))
            using (OdbcDataReader reader = cmd.ExecuteReader())
            {
                test1.Controls.Clear();

                while (reader.Read())
                {

                    System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
                    div.Attributes["class"] = "test";


                    div.ID = String.Format("{0}", reader.GetString(0));
                    // this line is responsible, problem here and my sqlsntax, im trying to set the SELECT idWallPosting for the div ID
                    Image img = new Image();
                    img.ImageUrl = String.Format("{0}", reader.GetString(2));

                    img.AlternateText = "Test image";

                    div.Controls.Add(img);
                    div.Controls.Add(ParseControl(String.Format("&nbsp&nbsp&nbsp;" + "{0}", reader.GetString(1))));
                    div.Attributes.Add("onclick", "return confirm_delete();");

                    div.Style["clear"] = "both";
                    test1.Controls.Add(div);

                }
            }
        }
    }
}

protected void btnDelete_Click(object sender, EventArgs e)
{

    string id = "ctl00_ContentPlaceHolder1_ContentPlaceHolder2_26";
    string[] idFragments = id.Split('_');
    id = idFragments[idFragments.Length - 1];

    //serverside code if confirm was pressed.
        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;"))
        {
            cn.Open();
            using (OdbcCommand cmd = new OdbcCommand("DELETE FROM WallPosting WHERE idWallPosting = " + id + ")", cn))
            {
                cmd.ExecuteNonQuery();
            }
        }
        //PopulateWallPosts();

}

编辑:尝试过这个:

function confirm_delete()
{
  if (confirm("Are you sure you want to delete this comment?") == true)
    return true;
  else
    return false;
}
</script>
<p>
<asp:Button ID="btn" OnClientClick="return confirm_delete();" OnClick="btnDelete_Click" runat="server" CssClass="Btn" Text="delete"/>

仍然没有回发

最佳答案

我没有看到您在任何地方明确告诉 asp.net 您的确认已成功。请记住,如果您不返回某些内容,那么它将默认为 false。您的 OnClientClick 应该只是 "return recognize_delete();",然后它就可以工作了。

OnClientClick 始终应该返回一个 bool 值,让 ASP.NET 知道它确实应该回发并触发服务器端 OnClick 事件。

关于c# - 我的按钮没有回发?我将它与 Javascript 绑定(bind)在一起,而 Javascript 又与 div 绑定(bind)在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490636/

相关文章:

javascript - 按卖家对一系列销售额进行分组,从每个卖家那里获取总数,按总销售额排序

c# - .NET Core 如何以独立于操作系统的方式获取所有时区和信息

c# - 过滤器 IQueryable 的动态表达式

c# - 使用 [Obsolete] 属性的弃用行为

c# - Assert.AreEqual 失败错误 C#

javascript - 特雷弗爵士未定义

javascript - 如何实现事件队列?

javascript - 如何通过javascript设置下拉列表中的选定值

jQuery - 如果更新了数据库,则更新页面

javascript - 在 JSON 中写入 HTML 字符串