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

C# 使用JavaScript onclick删除元素并在SQL中保存变量,c#,javascript,asp.net,C#,Javascript,Asp.net,我正在尝试向web应用程序添加一个函数,当用户单击放置在div上的“x”按钮时,该函数将删除div。web应用程序是用ASP.NET编写的。我还需要更新一个SQL表值,说明用户已经关闭了div,因此下次用户加载页面时,不需要的div就不存在了。这里的问题是,我希望在不重新加载页面(回发)的情况下发生这种情况。这样我就可以用jQuery设置div滑动/衰减的动画,同时让应用程序记住它已经关闭。这是到目前为止我的代码 ASP.NET <asp:Button ID="ConCloseButton

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

ASP.NET

<asp:Button ID="ConCloseButton" class="CloseBut" runat="server" OnClientClick="closeConPanel();return false;;" OnClick="ConClose_Click"  Text="&#10006;" />
这是我的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,这将使其可见)。所有这些都可以,但我希望它不需要回发就可以工作。

与其让您的点击逻辑绑定到事件,不如让它成为一个可以通过AJAX直接调用的页面。类似于“RemoveDivFromDB.aspx”的内容

然后修改javascript方法以包括:

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

您可以并且应该包含一个“成功”和“失败”javascript方法来适当地处理每种情况。查看jquery站点上的更多信息:

与其将您的点击逻辑绑定到事件,不如将其设置为可通过AJAX直接调用的页面。类似于“RemoveDivFromDB.aspx”的内容

然后修改javascript方法以包括:

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

您可以并且应该包含一个“成功”和“失败”javascript方法来适当地处理每种情况。请参阅jquery站点上的更多信息:

这是如何将变量保存在SQL表中的?也许我不太明白这个方法到底在做什么。感谢您的快速回复。您编写的服务器端更新ConClose_Click方法中DB的逻辑可以重新定位到新页面。该页面甚至不需要呈现HTML,您只需要一个URL就可以为您处理数据库的更新。您的AJAX调用可以点击该URL,它将更新您的数据库,而无需刷新您所在的页面。太棒了。我花了一段时间把所有的细节都记下来,但效果不错。非常感谢比尔。我希望我能增加你的销售代表,但因为我是一个新用户,我不能,直到我自己达到15个销售代表。非常感谢!这是如何在SQL表中保存变量的?也许我不太明白这个方法到底在做什么。感谢您的快速回复。您编写的服务器端更新ConClose_Click方法中DB的逻辑可以重新定位到新页面。该页面甚至不需要呈现HTML,您只需要一个URL就可以为您处理数据库的更新。您的AJAX调用可以点击该URL,它将更新您的数据库,而无需刷新您所在的页面。太棒了。我花了一段时间把所有的细节都记下来,但效果不错。非常感谢比尔。我希望我能增加你的销售代表,但因为我是一个新用户,我不能,直到我自己达到15个销售代表。非常感谢!旁注:您的代码易受SQL注入攻击。使用参数化查询。旁注:您的代码易受SQL注入攻击。使用参数化查询。