我正在尝试创建一个常见问题解答,其中用户可以对该主题进行排名有用或无用,我正在努力使其运行,就像我在脑海中想象一样。
这是目前的样子(由于某些原因,堆栈不允许我插入此图片): https://dl.dropboxusercontent.com/u/9446763/code/faq.JPG
我希望用户能够点击“有用”链接然后立即更新页面向数据库添加值并更新文本以显示增加如:“有帮助(1)”,另一次点击会是“有帮助(2)”等等..
现在我有sql更新工作但我唯一的问题是在页面回发后获取更改的数字。现在,当我点击“有用”链接按钮时,链接按钮完全消失,我留下了“(| Not Helpful(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();
}
}
答案 0 :(得分:1)
switch (e.CommandName)
{
case "Helpful":
((sender as LinkButton).FindControl("HelpfulLbl") as Label).Text = "Helpful (" + newamt.ToString() + ")" ;
break;
case "Not Helpful":
// The "Not Helpful" is not part of the LinkButton.
break;
}