在我这样做之前,我想我会问这是不是最好的方法。每个“供应商”对象具有“桶”。宾语。在我的转发器中,我需要显示Vendor中的一些属性和Bucket中的一些属性,还有一些由FileSystem填充的链接到供应商的图像。我认为最好的方法是将转发器与供应商对象绑定,然后在ItemDataBound上,我将根据绑定到特定Items [e.Item.ItemIndex]的供应商填充图像和存储桶。

这是最好的方法吗?

有帮助吗?

解决方案

如果Vendor对象只能容纳一个Bucket对象,则可以将它全部绑定在一个顶级转发器中。您可以通过顶级的简单数据绑定访问Bucket,而无需覆盖ItemDataBound。

因为您最有可能绑定“供应商”,所以如果您想这样做,您可以访问数据绑定中的成员:

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

如果你必须“处理某些东西”,你想要做ItemDataBound。在每次迭代绑定期间,需要对每个Vendor对象进行详细访问以进行决策。

如果Vendor对象可以容纳多个Buckets,那么访问它的最佳方式是通过ItemDataBound。在供应商的每次迭代中,您可以绑定一个新的嵌套转发器以显示存储桶数据,或执行您可能需要的任何重复/聚合功能。

根据您希望它在客户端的行为方式,您可以仅渲染供应商。当用户点击Vendor(或其他)时,您可以对服务器执行AJAX调用,该服务器将检索Bucket数据并动态地将其呈现到您的页面中。如果有大量供应商和他们的桶被渲染,您可能想尝试这种方法。与在ASPX服务器端构建所有内容相比,这将有助于数据库性能和页面呈现时间。 (但这需要大量数据,在尝试获得性能提升之前,应该出于可用性/客户端原因这样做。)

其他提示

这就是我通常如何去做,绑定主对象并处理ItemDataBound中的细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top