1

我正在尝试向 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;" />

这是我的 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,这将使它可见。)。所有这些都有效,但我希望它在没有回发的情况下工作。

4

1 回答 1

1

与其将您的 ConClose_Click 逻辑绑定到事件,只需将其设为可通过 AJAX 直接调用的页面。类似“RemoveDivFromDB.aspx”的东西。

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

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

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

于 2013-07-19T19:12:04.527 回答