我在我的asp.net页面上实现了喜欢和不喜欢。这里是aspx
页通过更新面板更新时得到两次喜欢我的网页
<asp:UpdatePanel ID="VotePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<div class="row">
<!-- left column -->
<div class="col-lg-12 col-sm-12 col-xs-12">
<div class="text-center">
<h1>
<asp:Label ID="LikeLabel" runat="server" Text="Label"></asp:Label>
<br />
<asp:Label ID="DislikeLabel" runat="server" Text="Label"></asp:Label>
<br />
<div class="btn-group">
<asp:Button ID="LikeButton" runat="server" CssClass="btn btn-default" Text="Like"
OnClick="LikeButton_Click" /><asp:Button ID="UnlikeButton" CssClass="btn btn-default"
runat="server" Text="Dislike" OnClick="UnlikeButton_Click" />
</div>
</div>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="LikeButton" />
<asp:AsyncPostBackTrigger ControlID="UnlikeButton" />
</Triggers>
</asp:UpdatePanel>
这是我的CS
页using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class Question : System.Web.UI.Page
{
ConnectionClass cl;
DataTable dt,dt1;
string QuestonId;
protected void Page_Load(object sender, EventArgs e)
{
cl = new ConnectionClass();
QuestonId = Request.QueryString["Id"];
string[] var = { "@id" };
SqlDbType[] type = { SqlDbType.Int };
string[] value = { QuestonId };
dt1 = cl.DatatableProcedure("GetQuestionLikeDislike", var, type, value);
LikeLabel.Text = dt1.Rows[0].ItemArray[0].ToString();
DislikeLabel.Text = dt1.Rows[0].ItemArray[1].ToString();
dt = cl.DatatableProcedure("GetAnswers", var, type, value);
}
protected void LikeButton_Click(object sender, EventArgs e)
{
string[] var = { "@id" };
SqlDbType[] type = { SqlDbType.Int };
string[] value = { QuestonId };
dt1 = cl.DatatableProcedure("InsertLike&getLikeDislike", var, type, value);
VotePanel.Update();
}
protected void UnlikeButton_Click(object sender, EventArgs e)
{
string[] var = { "@id" };
SqlDbType[] type = { SqlDbType.Int };
string[] value = { QuestonId };
dt1 = cl.DatatableProcedure("InsertUnlike&getLikeDislike", var, type, value);
VotePanel.Update();
}
}
当我像按钮来运行这个页面,然后按,它实现了它两次,喜欢被2 请帮助增加我与解决方案,以便类似只增加一。这将是一个很大的忙。提前致谢! 这些都是我的存储过程:
ALTER procedure [dbo].[InsertUnlike&getLikeDislike]
(
@id int
)
as
begin
update QuestionTable
set Dislikes=Dislikes + 1 where [email protected];
select Likes, Dislikes from QuestionTable where [email protected]
end
ALTER procedure [dbo].[InsertLike&getLikeDislike]
(
@id int
)
as
begin
update QuestionTable
set Likes=Likes + 1 where [email protected];
select Likes, Dislikes from QuestionTable where [email protected]
end
ALTER procedure [dbo].[GetQuestionLikeDislike]
(
@id int
)
as
begin
select Likes, Dislikes from QuestionTable where [email protected]
end
你为什么要手动调用'VotePanel.Update()'?更新将由按钮点击无论如何,与这个调用你更新它两次我认为 – Andrei
@Anderi,我从我的代码删除了这一行,但仍然工作相同 –