根据asp.net中另一个checkboxlist的选定项创建新的动态CheckBoxList

时间:2017-02-21 04:05:21

标签: c# asp.net checkboxlist

我正在制作ecommerece网站,我有一些过滤器(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);
        }
    }
}

这个代码项被添加到用户选择CheckboxList但现在我不知道来自userselection的东西是否取消选中它应该取消选中它的主过滤器。任何人都可以帮我这样做。

3 个答案:

答案 0 :(得分:1)

当从userSelections中取消选中项目时,您必须从列表中获取项目值,并使用userSelections CheckedChanged事件使用priceFilter和brandFilter进行循环。当未选中的商品值与priceFilter和brandFilter商品匹配时,只需取消选中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中删除未经检查的项目。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您需要在“应用事件”复选框中应用此选项,而不是页面加载事件。我认为您在Page_Load isPostback中应用了。