【问题标题】:How To Access Repeater's Items Randomly如何随机访问中继器的项目
【发布时间】:2011-10-10 14:59:06
【问题描述】:

我有一个带有ItemTemplate 的中继器,其中包含CheckBoxTextBox

我的转发器代表一个检查列表和一个TextBox,用于对我从列表中选择的每个项目进行评论。

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

我知道这真的很令人困惑,所以我将用更说明的方式来说明:

数据库视图

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) 上选择的用户想要编辑的项目,这样他就可以知道他选择了什么并开始选择新值,选中/取消选中复选框等。


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

【问题讨论】:

    标签: c# asp.net webforms repeater


    【解决方案1】:

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

    【讨论】:

    • 好吧,我不太了解你,如果你能用一些很棒的代码来说明你的想法..顺便说一句,有一个隐藏字段和 RowDataBinding 我得到一个计数器并添加1 到每个 HiddenField 创建? ..对不起,我迟到了,但我有一些工作问题 =)
    猜你喜欢
    • 2011-01-02
    • 2023-04-02
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多