簡體   English   中英

根據asp.net中另一個復選框列表的選定項制作新的動態CheckBoxList

[英]Make new dynamic CheckBoxList as per selected items of another checkboxlist in asp.net

我在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中取消某些選擇,也應該從其主過濾器中取消選擇它。任何人都可以幫助我做到這一點。

當從userSelections中取消選中項目時,您必須從列表中獲取項目值,並使用userSelections CheckedChanged事件通過priceFilter和brandFilter進行循環。 當未選中的項目值與priceFilter和brandFilter項匹配時,只需從priceFilter或brandFilter中取消選中即可。

字符串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中刪除未選中的項目。

哦,我認為您可以使用JavaScript或CheckedChanged事件。 當用戶選中新的復選框列表時,只需將其刪除即可。

您需要在復選框的“應用事件”而不是頁面加載事件上應用它。 我認為您在Page_Load isPostback中應用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM