0

我正在尝试创建一个常见问题解答,用户可以在其中对主题进行排名有用或无用,我正在努力让它发挥作用,就像我在脑海中想象它一样。

这就是它目前的样子(由于某种原因,堆栈不允许我插入这张图片): 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();
        }
     }
4

1 回答 1

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;
}
于 2013-09-06T18:41:53.647 回答