我正在尝试创建一个常见问题解答,用户可以在其中对主题进行排名有用或无用,我正在努力让它发挥作用,就像我在脑海中想象它一样。
这就是它目前的样子(由于某种原因,堆栈不允许我插入这张图片): https ://dl.dropboxusercontent.com/u/9446763/code/faq.JPG
我希望用户能够点击链接“有帮助”,然后它会立即更新页面,为数据库添加价值并更新文本以显示增加,如:“有帮助(1)”,再次点击将是“有帮助” (2)" 等等..
现在我有 sql 更新工作,但我唯一的问题是在页面回发后更改数字。现在,当我单击“有用”链接按钮时,链接按钮完全消失了,我只剩下“(|没有帮助(0))”
代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DataList ID="DataList1" RepeatColumns="1" CellPadding="5" runat="server">
<ItemTemplate>
<dl>
<dt>
<asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Question") %>'></asp:Label></dt>
<dd>
<asp:Label ID="Label2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Answer") %>'></asp:Label>
(<asp:LinkButton ID="Helpful" CommandName='<%# DataBinder.Eval(Container.DataItem, "Helpful") %>'
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>' OnCommand="Submit_Helpful"
runat="server">
Helpful (<asp:Label ID="HelpfulLbl" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Helpful") %>'></asp:Label>)</asp:LinkButton>
| <a href="#">Not Helpful (0)</a> )</dd>
</dl>
</ItemTemplate>
</asp:DataList>
</ContentTemplate>
</asp:UpdatePanel>
代码背后:
protected void Submit_Helpful(object sender, CommandEventArgs e)
{
int currentamt = Convert.ToInt32(e.CommandName);
int newamt = currentamt + 1;
using (SqlConnection conn = new SqlConnection(""))
{
SqlCommand cmd = new SqlCommand(@"UPDATE FAQ set Helpful=@f1 where ID = '" + e.CommandArgument + "'", conn);
conn.Open();
cmd.Parameters.Add("@f1", SqlDbType.Int).Value = newamt;
cmd.ExecuteNonQuery();
}
}