我有一个页面显示数据库中的所有新闻,我用功能
IList<News> GetAll();
然后我将列表绑定到转发器以显示所有新闻。如果用户点击新闻N,他将被重定向到page.aspx?id = N
如果设置了QueryString [“id”],那么我会得到一条我的新闻:
News news = sNewsService.Get(int.Parse(id));
现在,我想显示这条新闻,但我无法将其绑定到Repeater,因为它没有实现IListSource或IEnumerable。
是否有其他方法可以显示一个新闻的属性,而不是将每个属性值写入不同的标签,如lText = news.Text; lTitle = news.Title; ...或将新闻包装在列表中?
答案 0 :(得分:1)
DetailsView控件旨在显示单个记录。不确定这是否有帮助。
答案 1 :(得分:1)
这似乎是典型的Master-Details场景,其中Repeater显示News
个对象列表,然后允许您重定向到Details页面,该页面将显示有关所选News
对象的其他详细信息
在这种情况下,我建议使用FormView而不是DetailsView,这样可以更好地控制细节显示,因为它需要用户定义的模板,而不是预先配置的基于行的显示。
由于您的News类未实现IEnumerable
,因此您必须使用ObjectDataSource来启用数据绑定。此数据源将能够包装您的类,并允许FormView使用基于Eval的查找语法绑定到它。
答案 2 :(得分:0)
我将产品转换为MVC并创建了自定义DTO的/视图