在转发器控件中,是否有一种方法可以在呈现页面之前解除某些项目的绑定?
目前,我们有一个绑定到转发器的项目集合,如果该项目不是当前语言的一部分,我们将隐藏该项目。
我希望能够对中继器进行计数并返回有效的号码。不包括隐藏项目的计数。
是否可以解除特定项目的绑定ItemDataBound
event?
Update
对于我们要绑定的集合中的每个项目,我们在绑定期间检查数据库ItemDataBound
有关该项目的更多信息,例如语言等。目前,这阻止我们在绑定数据之前对其进行过滤。
如果这些隐藏项没有特定需求,更合适的解决方案可能是过滤绑定集合。就像是
items.Where(i => i.IsInLanguage(currentLanguage));
Update:
对于我来说,我会使用这种方法:
var items = db.
Where(i => i.IsInLanguage(currentLanguage)).
Where(i => i.SomeField == anotherFilterParameter);
repeater.DataSource = items;
repeater.DataBind();
所以所有过滤都是预先应用的
这也将减少数据库的往返次数,从而提高性能
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)