我正在制作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的东西是否取消选中它应该取消选中它的主过滤器。任何人都可以帮我这样做。
答案 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中应用了。