使用LinkBut​​ton更新数据和标签

时间:2013-09-06 18:30:44

标签: c# asp.net datalist linkbutton

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

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

1 个答案:

答案 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;
}