0

ユーザーがトピックを役に立つか役に立たないかでランク付けできる FAQ を作成しようとしていますが、これを頭の中で視覚化しているように機能させるのに苦労しています。

これは現在の外観です (スタックは何らかの理由でこの画像を挿入できません): 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 に答える