如何随机访问Repeater的项目

时间:2011-08-07 04:47:39

标签: c# asp.net webforms repeater

我有一个转发器,ItemTemplate包含CheckBoxTextBox

我的转发器代表一个检查清单以及TextBox,以便对我从列表中选择的每个项目发表评论。

现在,我有一个用于编辑数据库中现有购物车的页面,它使用此转发器使用户能够更新其列表。所以我需要使用数据库中先前选择的值更新List。我想不出一个简单的逻辑或方法只能访问上一个列表中的转发器项...我正在考虑尝试访问我数据库中的每个项目而不是循环和循环。

我知道这真的令人困惑,所以我只是用更具说明性的方式来表达:

数据库视图

Items
=======================
ID     Name
---    -----
1      Banana 
2      Apple
3      Strawberry
4      Orange


ShopCart_Items
========================================
ItemID    ItemName     CartID     Value
-------   ---------    -------    ------
2         Apple        1          1
4         Orange       1          2
2         Apple        2          2

网页浏览 首先,转发器中填充了我的“项目”表中的所有项目,没有框检查或任何内容。

然后我选择一个特定的购物车(比如cartId = 1)进行编辑,这就是我对如何做的真正困惑: 现在转发器将有15-20项,所以我只需要访问用户在当前购物车上选择的项目(cartId = 1),用户想要编辑,这样他就可以知道他选择了什么并开始选择新值,选中/取消选中CheckBoxes等。


对不起这个长期的问题我很抱歉,但我真的很困惑应该/我可以直接访问每个项目或者您建议我使用什么逻辑? ..谢谢=)

1 个答案:

答案 0 :(得分:1)

我相信您在一个转发器中混合了两个不同的实体 - 订单和订单商品。 在我看来,更好的方法是在页面上放置两个转发器:第一个用于显示订单,第二个用于显示所选订单的订单商品。这样,您可以对两个转发器使用简单的SqlDataSource控件,并将ControlParameter添加到用于检索订单商品的数据源,具体取决于第一个转发器中的当前订单选择。