Как переместить выбранный флажок в начало списка флажков - PullRequest
1 голос
/ 08 ноября 2019

У меня есть список флажков с привязкой к данным и я хочу, чтобы выбранный элемент флажка переместился в верхнюю часть списка.

Я пробовал искать, но во всех решениях используется флажок html вместо списка флажков asp

Вот мой код для списка флажков

<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSourceID="SqlDataSource2" DataTextField="SBrand" DataValueField="SBrand" AutoPostBack="True" SelectedIndexChanged="gvStock_SelectedIndexChanged" OnSelectedIndexChanged="CheckBoxList_SelectedIndexChanged" OnPageIndexChanging="gvStock_PageIndexChanging" CssClass="checkboxlist">
</asp:CheckBoxList>

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете сделать это в событии SelectedIndexChanged CheckBoxList.

<asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="true" 
    OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged"></asp:CheckBoxList>

Код позади

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
    //get the index of the last changed checkbox
    int index = Convert.ToInt32(Request.Form["__EVENTTARGET"].Split('$').Last());

    //find the correct listitem in the checkboxlist
    ListItem item = CheckBoxList1.Items[index];

    //if the item is already in first position do nothing
    if (index == 0)
        return;

    //remove it from it's current position
    CheckBoxList1.Items.RemoveAt(index);

    //add the listitem at the top
    CheckBoxList1.Items.Insert(0, item);
}

Это может не работать с DataSourceID. Так что, если это не так, вы должны начать связывать данные с CheckBoxList из кода: http://www.dotnetfox.com/articles/how-to-bind-data-to-checkboxlist-control-in-Asp-Net-using-C-Sharp-1042.aspx

...