使用JavaScript onclick删除元素,并在SQL中保存变量

本文关键字:SQL 保存 变量 并在 JavaScript onclick 删除 元素 使用 | 更新日期: 2023-09-27 18:23:55

我正在尝试向web应用程序添加一个函数,当用户单击放置在div上的"x"按钮时,该函数会删除div。该web应用程序是用ASP.NET编写的。我还需要更新一个SQL表值,说明用户已关闭div,因此下次用户加载页面时,不需要的div就不存在了。这里的问题是,我希望在不重新加载页面(回发)的情况下实现这一点。这样,我就可以在让应用程序记住is已经关闭的同时,用jQuery动画化div的滑动/淡出。这是我迄今为止的代码。

ASP.NET

<asp:Button ID="ConCloseButton" class="CloseBut" runat="server" OnClientClick="closeConPanel();return false;;" OnClick="ConClose_Click"  Text="&#10006;" />

这是我的JavaScript

        function closeConPanel() {
            document.getElementById('con-feed').style.display = 'none';
        }

这是我的C#服务器代码

 protected void ConClose_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection("Data Source=xxxx;Initial Catalog=xxxxxx;User ID=xxxxxx_user;Password=xxxxxxxx_user");
        conn.Open();
        SqlCommand cmdUpdate = new SqlCommand("Update CookieInfo Set ConstNewsData='0' where UserEmailId='" + (Label1.Text).ToString() + "'", conn);
        cmdUpdate.ExecuteNonQuery();
        conn.Close();
        HttpCookie cookie = Request.Cookies["Dashboard"];
        cookie["ConstNews"] = "0";
        cookie.Expires = DateTime.Now.AddYears(1);
        Response.Cookies.Add(cookie);
}

因此,作为总结,我希望用户点击ASP按钮,隐藏"con feed"div,并让应用程序记住这一点(他们登录时使用一个电子邮件地址,该地址在SQL表上表示他们的首选项。如果他们关闭一个div,其状态将==0,并且不会显示。否则,其状态==1,这将使其可见。)。所有这些都有效,但我希望它在没有回发的情况下工作。

使用JavaScript onclick删除元素,并在SQL中保存变量

与其将ConClose_Click逻辑绑定到事件,不如将其作为一个可以通过AJAX直接调用的页面。类似于"RemoveDivFromDB.aspx".

然后修改您的javascript方法以包括:

    function closeConPanel() {
        document.getElementById('con-feed').style.display = 'none';
        $.ajax({
              url: "/RemoveDivFromDB.aspx?id=con-feed",
              type: "get"
         });
    }

您可以并且应该包含一个"成功"answers"失败"的javascript方法来适当地处理每种情况。在jquery网站上查看更多信息:http://api.jquery.com/jQuery.ajax/