两个Repeater嵌套,内层Repeater分页问题,求大神

ljj5610 2013-01-04 05:40:27
用Repeater做了个留言板,现在已经实现动态加载留言,

新需求是,在留言板的每一条留言下显示对该条留言的回复,

(如同百度贴吧对某一楼的回复),



内层的回复又用了一个Repeater,

现在能实现对里层Repeater2的绑定,写在Repeater1的ItemDataBound事件里,

但是Repeater2的数据不能分页 ,根本找不到AspNetPager控件,

也没有PageChanging事件,手动添加在后台也不可能找到其Id,

另外,我Repeater2里有文本框,要实现对某一楼留言的回复,

那回复之后要怎么再次绑定Repeater2?

求大神,高分给 ,
...全文
332 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
guijingcun 2013-06-13
  • 打赏
  • 举报
回复
Repeater嵌套的响应速度很慢的,建议少用服务器控件的嵌套。 单层循环可以使用,嵌套循环可以使用追加等方式实现
饕餮123 2013-06-13
  • 打赏
  • 举报
回复
引用 5 楼 ljj5610 的回复:
protected void repPostInfo_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {

            Repeater rep = e.Item.FindControl("repUserReplyInfo") as Repeater;//找到里层的repeater对象
            DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 
            int ReplyId = Convert.ToInt32(rowv["id"]); //获取填充子类的id 
            HtmlControl id = e.Item.FindControl("AspNetPager3") as HtmlControl;
            AspNetPager AspNetPager3 = (AspNetPager)e.Item.FindControl("AspNetPager3");


            AspNetPager3.PageSize = 1;
            AspNetPager3.RecordCount = ResultCountByrepUserReplyInfo(ReplyId);
            if (AspNetPager3.PageSize >= AspNetPager3.RecordCount)
            {
                AspNetPager3.Visible = false;
            }
            else
            {
                AspNetPager3.Visible = true;
            }
            rep.DataSource = GetUserReply(ReplyId, AspNetPager3.PageSize * (AspNetPager3.CurrentPageIndex - 1), AspNetPager3.PageSize, "UserReply");
            rep.DataBind();
                    }
先绑定数据源,再去做分页试试
insus 2013-06-13
  • 打赏
  • 举报
回复
lz, Insus.NET想问你一下,没有嵌套的Repeater控件,也就是说,单独的一个Repeater控件,能实现分页吗? 如果回签肯定的的话,嵌套之后的Repeater控件分页也一定没有问题,不管是嵌套还是被嵌套的Repeater控件。 当然这不是单单所指Repeater,Datalist还是GridView控件。
永远的小鱼 2013-06-13
  • 打赏
  • 举报
回复
当时做过一个项目 嵌套了3层的repeater 也用到了分页。 主要的就是一个findID的什么方法。可以动态找到对应的repeater里面的空间ID的。
小小菜鸟- 2013-06-13
  • 打赏
  • 举报
回复
楼组问题解决了吗,碰到同样的问题,求分享!
绝版小龙女 2013-06-13
  • 打赏
  • 举报
回复
这东西放到网络上能用么?
mickers 2013-04-18
  • 打赏
  • 举报
回复
好像我现在也是这样问题,楼猪弄好没有,那个数据是绑定在itemdatabound里面的
ljj5610 2013-01-05
  • 打赏
  • 举报
回复
引用 10 楼 huayy 的回复:
这还要多详细呢, 对了,你不能用AspNetPager控件,得自己写分页代码。
我懂你的意思,要动态判断很多东西 ,
huayy 2013-01-05
  • 打赏
  • 举报
回复
这还要多详细呢, 对了,你不能用AspNetPager控件,得自己写分页代码。
ljj5610 2013-01-05
  • 打赏
  • 举报
回复
引用 7 楼 huayy 的回复:
用地址栏传参数 比如 gbook.aspx?page=1&page2=2&s=1111#1111 page=1是留言的分页,page2是回复的分页,s是将留言ID为1111的回复显示,其他隐藏。 #1111是书签
可不可以说详细点 ?
huayy 2013-01-05
  • 打赏
  • 举报
回复
你要做到体验好一点,就用ajax吧
huayy 2013-01-05
  • 打赏
  • 举报
回复
用地址栏传参数 比如 gbook.aspx?page=1&page2=2&s=1111#1111 page=1是留言的分页,page2是回复的分页,s是将留言ID为1111的回复显示,其他隐藏。 #1111是书签
ljj5610 2013-01-05
  • 打赏
  • 举报
回复
没人吗,求帮忙啊 ,
ljj5610 2013-01-05
  • 打赏
  • 举报
回复
protected void repPostInfo_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {

            Repeater rep = e.Item.FindControl("repUserReplyInfo") as Repeater;//找到里层的repeater对象
            DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 
            int ReplyId = Convert.ToInt32(rowv["id"]); //获取填充子类的id 
            HtmlControl id = e.Item.FindControl("AspNetPager3") as HtmlControl;
            AspNetPager AspNetPager3 = (AspNetPager)e.Item.FindControl("AspNetPager3");


            AspNetPager3.PageSize = 1;
            AspNetPager3.RecordCount = ResultCountByrepUserReplyInfo(ReplyId);
            if (AspNetPager3.PageSize >= AspNetPager3.RecordCount)
            {
                AspNetPager3.Visible = false;
            }
            else
            {
                AspNetPager3.Visible = true;
            }
            rep.DataSource = GetUserReply(ReplyId, AspNetPager3.PageSize * (AspNetPager3.CurrentPageIndex - 1), AspNetPager3.PageSize, "UserReply");
            rep.DataBind();
                    }
ljja5610 2013-01-05
  • 打赏
  • 举报
回复
同问,有大神吗,想顺便学习一下 ,
chenqi_lscy 2013-01-05
  • 打赏
  • 举报
回复
加油,楼主~
ljj5610 2013-01-05
  • 打赏
  • 举报
回复
有木有人 ,
ljj5610 2013-01-04
  • 打赏
  • 举报
回复
 <asp:Repeater ID="repPostInfo" runat="server" OnItemDataBound="repPostInfo_ItemDataBound">
                        <ItemTemplate>
                            <div class="repeatlist">
                                <input id="Label1" type="button" title="<%# DataBinder.Eval(Container.DataItem, "Id")%>"
                                    value="button" />
                                <asp:Label ID="Label11" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Id")%>'></asp:Label>
                                <div class="listimg">
                                    <img alt="" src="<%# DataBinder.Eval(Container.DataItem, "UserPic")%>" height="90px"
                                        width="110px" />
                                    <div class="uname">
                                        <%# DataBinder.Eval(Container.DataItem, "ReplyUserName")%>
                                        <br />
                                        <%# DataBinder.Eval(Container.DataItem, "Floor")+"楼"%></div>
                                </div>
                                <div class="listcont">
                                    <div class="listshow" id="listshow">
                                        <%# DataBinder.Eval(Container.DataItem, "ReplyContent")%>
                                    </div>
                                    
                                    <div class="listtime" title="" id="divid">
                                                发表于:<span>
                                                    <%# DataBinder.Eval(Container.DataItem, "ReplyTime")%></span></div>
                                    <div id="divUserReplyInfo" runat="server">
                                   <asp:Repeater ID="repUserReplyInfo" runat="server">
                                     <ItemTemplate>
                                            <%# DataBinder.Eval(Container.DataItem, "SenderId")%>:<span>
                                                    <%# DataBinder.Eval(Container.DataItem, "ReplyContent")%><br/>
                                        </ItemTemplate>
                                    </asp:Repeater>
                                    <div class="anpager">
                            <webdiyer:AspNetPager ID="AspNetPager3" runat="server" AlwaysShow="True" CssClass="pages"
                                CurrentPageButtonClass="cpb" HorizontalAlign="Center">
                            </webdiyer:AspNetPager>
                        </div>
                                    </div>
                                     
                                </div>
                                <asp:Button ID="btnReply" class="btnReply" runat="server" Text="回复" OnClick="btnReply_Click" />
                                <div class="UserReplyContent" title="<%# DataBinder.Eval(Container.DataItem, "UserReplyTitle")%>"
                                    id="divUserReplyContent">
                                </div>
                            </div>
                        </ItemTemplate>
                    </asp:Repeater>
ljj5610 2013-01-04
  • 打赏
  • 举报
回复

这是后台对Repeater2的绑定 ,
写在Repeater1 的ItemsDataBound事件里 ,
ljj5610 2013-01-04
  • 打赏
  • 举报
回复

这是前台,选中部分是内层Repeater

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧