我需要用伪相关数据填充一个中继器

时间:2020-03-06 14:28:43  来源:igfitidea点击:

在我这样做之前,我想过要问这是否是最好的方法。每个"供应商"对象都有一个"桶"对象。在我的转发器中,我需要显示一些来自Vendor的属性和一些Bucket的属性,以及一些由FileSystem填充并链接到该卖方的图像。我认为最好的方法是将转发器与供应商对象绑定,然后在ItemDataBound上,根据绑定到该特定Items [e.Item.ItemIndex]的供应商填充图像和存储桶。

这是解决此问题的最佳方法吗?谢谢。

解决方案

这就是我通常的处理方式,将其绑定到主对象上并处理ItemDataBound中的细节。

如果供应商对象只能容纳一个Bucket对象,则将其全部绑定到单个顶级转发器中可能是合适的。我们可以通过简单的数据绑定访问存储桶,而无需覆盖ItemDataBound。

因为我们最有可能绑定"供应商",所以我们可以通过以下方式访问数据绑定中的成员:

<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>

如果我们必须在绑定的每次迭代期间"处理某些东西"并且需要对每个Vendor对象的详细访问权限以进行决策,则需要使用ItemDataBound。

如果供应商对象可以容纳多个存储桶,则最好的访问方法是通过ItemDataBound。在供应商的每次迭代中,我们都可以绑定一个新的嵌套转发器以显示存储桶数据,或者执行我们可能需要的任何转发/聚合功能。

根据我们希望它在客户端上表现的方式,我们可以仅渲染供应商。当用户单击供应商(或者其他)时,我们可以对服务器执行AJAX调用,服务器将检索存储桶数据并将其动态呈现到页面中。如果有大量供应商及其存储桶被渲染,则我们可能要尝试这种方法。与在ASPX服务器端进行构建相比,这将有助于数据库性能和页面呈现时间。 (但这将需要大量数据,出于可用性/客户端原因,应该这样做,然后再尝试提高性能。)