【问题标题】:Make new dynamic CheckBoxList as per selected items of another checkboxlist in asp.net根据 asp.net 中另一个复选框列表的选定项创建新的动态 CheckBoxList
【发布时间】:2017-02-21 12:40:15
【问题描述】:

我正在制作具有某些过滤器(5 种复选框列表)的电子商务网站。如果用户应用复选框列表中的任何项目,则应将所选项目添加到新的复选框列表中。基本上我想显示用户选择的内容。我可以用下面的代码做到这一点。

if (IsPostBack) {
    userSelections.Items.Clear();
    foreach (ListItem item in priceFilter.Items) {
        if (item.Selected) {
            userSelections.Items.Add(item);
        }
    }

    foreach (ListItem item in brandFilter.Items) {
        if (item.Selected) {
            userSelections.Items.Add(item);
        }
    }
}

使用此代码项被添加到 userselections CheckboxList 但现在我不知道用户选择中的某些内容是否被取消选中,它也应该从它的主过滤器中取消选中。任何人都可以帮我这样做。

【问题讨论】:

  • 项目添加到userSelections 后,您想取消选中priceFilterbrandFilter 中的复选框吗?
  • 是的。在用户选择中,价格增加了 25 - 50 美元。如果我取消选中它 feom 用户选择,它也应该从它的价格过滤器复选框列表中取消选中

标签: c# asp.net checkboxlist


【解决方案1】:

当从 userSelections 中取消选中 item 时,您必须从 list 中获取 item 值,并使用 userSelections CheckedChanged 事件通过 priceFilter 和 brandFilter 循环。当 unchecked item value 与 priceFilter 和 brandFilter item 匹配时,只需从 priceFilter 或 brandFilter 中取消选中即可。

String unchecked_item = userSelections.item.value; (注:未选中的项目值)

    foreach (ListItem item in priceFilter.Items) {
            if (unchecked_item == item.value) {
                priceFilter.Item.selected = false;
            }
        }

foreach (ListItem item in brandFilter.Items) {
            if (unchecked_item == item.value) {
                brandFilter.Item.selected = false;
            }
        }

最后从 userSelections 中删除未选中的项目。

【讨论】:

    【解决方案2】:

    哦,我认为您可以使用 JavaScript 或 CheckedChanged 事件。当用户选中新的复选框列表时,只需将其删除即可。

    【讨论】:

      【解决方案3】:

      您需要将此应用于复选框的应用事件,而不是页面加载事件。我想你在 Page_Load 中申请的是Postback。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-06
        相关资源
        最近更新 更多