像stackoverflow注释的动态数据量?

时间:2011-03-04 20:40:40

标签: asp.net nested-repeater

我正在尝试像SO一样创建评论系统,但首先,如果点击“显示所有评论”进行所需的回复,我想显示帖子的前5条评论并显示休息。

这样做的最佳方式是什么?我真的找不到做我想做的事的好方法。我一定错过了什么。

有关信息,注释数据源是我页面中的嵌套转发器。外部转发器是回复,内部转发器是注释。目前我绑定所有结果的所有评论(即使它有10000个回复。)。另外,我不想为评论做分页。我只是希望它的工作方式与SO相同。

有什么想法吗?

编辑:现在我正在考虑有两个表用于评论:

  • 一个只有5行数据且默认可见的表格。我需要过滤才能做到这一点。 Linq过滤代码会很棒!

  • 包含所有结果的表格。没有过滤。我对此没有任何问题。

以下是我对数据的看法:

DataRowView dv = e.Item.DataItem as DataRowView;
        if (dv != null)
        {
            Repeater commentRepeater = e.Item.FindControl("childRepeater") as Repeater;
            if (commentRepeater != null)
            {
                commentRepeater.DataSource = dv.CreateChildView("myrelation");
                commentRepeater.DataBind();
            }
        }

正如您所看到的,我在我的数据集中创建了表之间的关系,并且我将该数据行绑定到我的转发器。我需要对数据行进行前5个过滤。

谢谢

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

如果你想将左边的项目附加到当前的转发器项目,你可以在附加到jquery函数的coments末尾有一个按钮,它将为你获取其余的注释。然后,一旦收到数据,您的功能就会将评论附加到其他评论列表中,模仿转发器正在做什么并替换“全部显示”按钮。

如果您不想使用任何ajax来执行此操作,那么您可能需要使用一组新数据重新绑定注释Repeater,这些数据不仅限于前5个结果。

编辑:根据您编辑的评论和更改,我会使用一个包含所有评论的表格,并在每个评论的DataBinding中将行样式设置为可见全球反击。一旦你有超过5个样式将样式设置为每个项目的隐藏样式。当他们单击show all按钮时,只需将样式从隐藏切换为可见,即可隐藏其余注释。如果有很多带有注释的答案,这将节省您复制前5个项目的数据,这些项目可能会变成许多额外的行。