我正在尝试向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="✖" />
这是我的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,这将使它可见。)。所有这些都有效,但我希望它能够在没有回发的情况下工作。
答案 0 :(得分: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/