2012-03-30 8 views

答えて

2

を行う際に賢いしたばかりのアイデア:

第一タスク:

<asp:LinkButton ID="btnmakecomment" class="linkhover" Font-Size="11px" runat="server">Comments</asp:LinkButton> 

<asp:Panel ID="pnlMComment" CssClass="" runat="server" Style="overflow: visible; height:0"> 
    <div class="commentbox"> 
    <asp:TextBox ID="MakeComments" CssClass="unwatermarkedcomment" runat="server" Width="90%" TextMode="MultiLine"></asp:TextBox> 
    <asp:Button ID="btnPost" CssClass="submitButton" Text="Comment" runat="server" CommandName="Comment" onclick="Button1_Click" /> 
<ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxScrapWme" runat="server" TargetControlID="MakeComments" WatermarkText=" Make Comment" WatermarkCssClass="watermarked" /> 
    </div> 
</asp:Panel> 

<ajaxToolkit:CollapsiblePanelExtender ID="cpe1" runat="Server" TargetControlID="pnlMComment" Collapsed="true" CollapsedText="Comment" ExpandedText="" TextLabelID="btnmakecomment"  ExpandControlID="btnmakecomment" CollapseControlID="btnmakecomment" SuppressPostBack="true" /> 

ので、上記のコードのために2つの事:

1. collapsible Panel will appear with textbox and button after clicking on the btnmakecomment. 
    2. on Button1_Click event update your comment table in database. 

2番目のタスク:

<asp:GridView ID="CommentGridView" runat="server" AutoGenerateColumns="false" ShowHeader="false" ShowFooter="true" Width="90%" AllowPaging="True" PageSize="3" GridLines="None"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <table class="tblcomment1"> 
       <tr> 
        <td> 
         <%--show your comments here--%> 
          <%--PageSize of the GridView has the value 3 so only 3 row will be display first--%> 
        </td> 
        </tr> 
       </table> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
    <PagerSettings Mode="NextPrevious" NextPageText="Show More" FirstPageText="Show More" 
    LastPageText="Show More" Position="Bottom" /> 
</asp:GridView> 

は、CommentGridViewをコメントテーブルにバインドします。 コメントの下に表示されるPagerSettingsがあるので、NextPageText(ShowMore)ではPageSize値を増やしてコメントを表示することができます。このように:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    int i = CommentGridView.PageSize; 
    CommentGridView.PageSize = i + 5; 
    CommentGridView.DataSource = dtscrab; 
    CommentGridView.DataBind(); 
} 

注:UpdatePanel内の部分的なポストバック用のコメントグリッドビューです。

+0

最初に、努力のためにたくさんのことをしています。しかし(いつものように)私は次のページにコメントしています。私はlokigではありません。+私はラベルの数を表示する必要があります実行時に更新されています。[http://www.99points.info/2010/07/facebook-style-wallpost-and-comments-system-using-jquery-ajax-and-php-reloaded/]ですが、 PhP ..eyo .. –

+0

私の編集を確認してください。私はそれが完全ではないという考えをあなたに示しました。あなたはあなたの仕事を達成するためにもっと仕事をしなければなりません。そして、あなたがコメントをしたときに:GridView1_PageIndexChangingイベントの中でラベルを数える。 –

0

私はかつてこれを行うためのコードを書いていましたが、私が見つけたのは、そうするためにはちょっと細かいことが必要だということでした。

スレッドで1〜2のコメントしかない場合は、すべてをリストにロードしてください。

ポストにはいくつかのコメントがある場合は、リンクを作成してから、すぐにいくつかの新しいコメントとそれに従うことができます:

row 1: <a href="/posts/<post_id>" class="loadMore">show all</a> 
row 2: new comment 
row 3: newer comment 

、その後、Facebookは他のコメントを取得するために、AJAX URLとしてそのHREFを使用しています一度ajaxで読み込まれると、そのリンクは他のコメントと置き換えられます。タグのhrefとして設定されているため、javascriptがオフになっていると正常に機能しなくなります。

は、彼らはそれをこのよう

+0

ここで私はFacebookや他のソーシャルと接続していません。私は自分のコメントを扱っています。 –

+0

最初に、あなたはそれの見た目に心配する必要はなく、正しく動作することを確認する必要があります(自分のデータを消費しているので簡単です)。しかし、CSSスタイリングを使ってそれらの。 – Kristian