【问题标题】:Posts and comments controls in ASP.NETASP.NET 中的帖子和评论控件
【发布时间】:2015-11-08 05:25:07
【问题描述】:

我想使用 asp.net 制作一个网页,用户可以在其中看到其他人的帖子并对其发表评论(如 Facebook 或 Twitter)。我找不到合适的控件来查看数据库中的帖子并允许对它们发表评论并喜欢它们。我在网上搜索,但没有足够的关于这个主题的信息。

我想我应该使用ListViewDataListGridView。但是,自定义此类控件有点受限,我不知道如何在这些控件中添加评论和点赞功能。

如何向这些控件添加评论和点赞功能?或者,有没有更好的控件可以用于此目的?

我尝试使用 ListView,但无法添加评论区,这是我的代码:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [title] FROM [products]">

    </asp:SqlDataSource>
        <asp:Panel ID="Panel1" runat="server" HorizontalAlign="Center">
                <asp:ListView ID="ListView2" runat="server" DataSourceID="SqlDataSource1">

                    <AlternatingItemTemplate>
                        <span style="background-color: #FAFAD2; color: #284775;">title:
                        <asp:Label ID="titleLabel" runat="server" Text='<%# Eval("title") %>' />
                        <br />
                        <br />
                        </span>
                    </AlternatingItemTemplate>
                    <EditItemTemplate>
                        <span style="background-color: #FFCC66; color: #000080;">title:
                        <asp:TextBox ID="titleTextBox" runat="server" Text='<%# Bind("title") %>' />
                        <br />
                        <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
                        <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
                        <br />
                        <br />
                        </span>
                    </EditItemTemplate>
                    <EmptyDataTemplate>
                        <span>No data was returned.</span>
                    </EmptyDataTemplate>
                    <InsertItemTemplate>
                        <span style="">title:
                        <asp:TextBox ID="titleTextBox" runat="server" Text='<%# Bind("title") %>' />
                        <br />
                        <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />
                        <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" />
                        <br />
                        <br />
                        </span>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        <span style="background-color: #FFFBD6; color: #333333;">title:
                        <asp:Label ID="titleLabel" runat="server" Text='<%# Eval("title") %>' />
                        <br />
                        <br />
                        </span>
                    </ItemTemplate>
                    <LayoutTemplate>
                        <div id="itemPlaceholderContainer" runat="server" style="font-family: Verdana, Arial, Helvetica, sans-serif;">
                            <span runat="server" id="itemPlaceholder" />
                        </div>
                        <div style="text-align: center; background-color: #FFCC66; font-family: Verdana, Arial, Helvetica, sans-serif; color: #333333;">
                        </div>
                    </LayoutTemplate>
                    <SelectedItemTemplate>
                        <span style="background-color: #FFCC66; font-weight: bold; color: #000080;">title:
                        <asp:Label ID="titleLabel" runat="server" Text='<%# Eval("title") %>' />
                        <br />
                        <br />
                        </span>
                    </SelectedItemTemplate>

                </asp:ListView>

        </asp:Panel> 

编辑:这是我尝试使用中继器的另一种方法:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [products]">

    </asp:SqlDataSource>

        <asp:Panel ID="Panel1" runat="server" HorizontalAlign="Center">
            <asp:Repeater ID="rptEmployees" runat="server" DataSourceID="SqlDataSource1">
            <HeaderTemplate>
                <div id="divEmployees">
            </HeaderTemplate>
            <ItemTemplate>
                <div class="detail">
                   <div>Name: <strong> <%# Eval("title") %></strong></div>
                   <div>Address: <strong><%# Eval("price") %></strong></div>

                </div>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <div class="detail">
                   <div>Name: <strong><%# Eval("title") %></strong></div>
                   <div>Address: <strong><%# Eval("price") %></strong></div>
                </div>
            </AlternatingItemTemplate>
            <FooterTemplate>
                </div>
            </FooterTemplate>
        </asp:Repeater>

        </asp:Panel> 

我找到了一个网站,它解释了如何使用中继器将 cmets 添加到一些帖子中,可以在这里找到,http://dotprogramming.blogspot.com/2013/07/how-to-make-comment-box-in-aspnet.html

但是,我认为这说明了如何将多个 cmets 添加到单个帖子中。 我想要多个帖子,每个帖子可以有多个cmet,我该如何实现?

感谢任何帮助。

谢谢。

【问题讨论】:

  • 使用中继器并发布您的代码

标签: c# html asp.net database listview


【解决方案1】:

经过一番搜索,我发现可以使用嵌套Repeaters,一个代表帖子本身,嵌套一个代表帖子的cmets。

对于将Repeaters 与 cmets 一起使用,这篇文章非常有帮助,

http://www.c-sharpcorner.com/UploadFile/5089e0/how-to-use-repeater-control-in-Asp-Net/

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2013-04-01
    • 2023-04-10
    • 2016-12-23
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多