You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#嵌套Repeater子控件数据错误:所有子Repeater显示相同新闻标题如何解决

问题原因
  • 外层Repeater每绑定一行数据就会触发一次ItemDataBound事件,你在事件内部遍历了全部通讯记录给当前子Repeater赋值,每次赋值都会被后续集合项的新闻内容覆盖,最终所有子Repeater都会显示集合最后一条通讯对应的新闻列表,所以出现了所有子项内容一致的问题。
  • 补充优化说明:直接取当前行的绑定数据对象的方式不依赖全局字段,即使是回发场景也能正常工作,稳定性更强。
修复方案

只需要修改rptNewsItems_ItemDataBound方法的逻辑即可,修正后代码如下:

protected void rptNewsItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Repeater rptNews = e.Item.FindControl("rptNews") as Repeater;
        // 直接获取当前行绑定的单条NewsletterHistoryModel对象,不需要遍历全局集合
        NewsletterHistoryModel currentNewsletter = e.Item.DataItem as NewsletterHistoryModel;
        rptNews.DataSource = currentNewsletter.newsModels;
        rptNews.DataBind();
    }
}

内容的提问来源于stack exchange,提问作者Emre Serper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:06:02