首先让我说在.NET开发方面我是一个新手。
我正在使用订单确认页面,许多不同的服务想要了解基本相同的信息;订单号,项目数,总价值等......
他们还希望我为每个订购的产品调用javascript函数或包含html标记。
我目前正在使用asp:Repeater工作正常。但是它们都使用相同的DataSource。令人沮丧的是,我不能这样做:
// in codebehind
rep_items.DataSource = CustomerOrder.Items
rep_items.DataBind()
然后在我所有不同的中继器上使用rep_items:
// .aspx page
<!-- Google Analytics -->
<asp:Repeater ID="rep_items" runat="server">
<ItemTemplate>
_gaq.push("<%=productID%>");
</ItemTemplate>
</asp:Repeater>
<!-- Another Service -->
<asp:Repeater ID="rep_items" runat="server">
<ItemTemplate>
anotherService.trackOrder("<%=productID%>");
</ItemTemplate>
</asp:Repeater>
我要做的是:
// Code behind
rep_googleAnalytics.DataSource = CustomerOrder.Items
rep_googleAnalytics.DataBind()
rep_AnotherService.DataSource = CustomerOrder.Items // Same datasource as above
rep_AnotherService.DataBind()
// As more services are added this gets longer
// .aspx page
<!-- Google Analytics -->
<asp:Repeater ID="rep_googleAnalytics" runat="server">
<ItemTemplate>
_gaq.push("<%=productID%>");
</ItemTemplate>
</asp:Repeater>
<!-- Another Service -->
<asp:Repeater ID="rep_anotherService" runat="server">
<ItemTemplate>
anotherService.trackOrder("<%=productID%>");
</ItemTemplate>
</asp:Repeater>
如您所见,我必须将相同的数据源绑定到不同的对象。我是否可以为需要相同数据的每项服务使用相同的数据源但不同?