CheckboxList при отмене выбора удалить элемент из маркированного списка - PullRequest
0 голосов
/ 03 июля 2018

Привет, у меня есть этот фрагмент кода, в котором я сопоставляю выбранные значения моих флажков с маркированным списком, пока он работает нормально, когда я выбираю значение - он соответствующим образом отображается в маркированном списке. Тем не менее, я немного борюсь, когда пользователи отменяют выбор значения. Я хотел бы, чтобы он обновил маркированный список соответственно. Любая помощь?

Вот код:

 public List<string> elements = new List<string>();


protected void checkList_SelectedIndexChanged(object sender, EventArgs e)
        { foreach(ListItem item in checkList.Items)
            {
                if (item.Selected)
                {
                     elements.Add(item.Text);
                }
                else {//Should this else triger the deletion of the elements in the list? 
                }

            }
            foreach (object o in elements)
            {   int exists = 0;
                for (int i = 0; i < BullList.Items.Count; i++)
                {

                    if(BullList.Items[i].ToString() == o.ToString())
                    {
                        exists++;
                    }
                }
                if(exists == 0)
                {
                    BullList.Items.Add(o.ToString());
                }}}

        protected void checkList_DataBound(object sender, EventArgs e)
        {
            for (int i = 0; i < BullList.Items.Count; i++)
            {
                foreach (ListItem item in checkList.Items)
                {
                    if (BullList.Items[i].ToString() == item.ToString())
                    {
                        item.Selected = true;
                    }
                    else
                    {

                    }}}}

Элементы DOM:

  <asp:DropDownList AutoPostBack="true" ID="DropDownJobs" runat="server" Width="390px" Height="42px" Font-Names="Roboto" Font-Size="25px" DataSourceID="jobsDrop" DataTextField="MainJob" DataValueField="IDKey"></asp:DropDownList>       

           <asp:CheckBoxList OnDataBound="checkList_DataBound" AutoPostBack="true" ID="checkList" runat="server" OnSelectedIndexChanged="checkList_SelectedIndexChanged" DataSourceID="SortedListJobs" DataTextField="SubJobFamily" DataValueField="SubJobFamily" Width="406px">
            <asp:ListItem>
            </asp:ListItem>  
            </asp:CheckBoxList>

            <h6 class="List">These jobs have been selected:</h6>
            <asp:BulletedList runat="server" ID="BullList" CssClass="bullList"></asp:BulletedList/>

1 Ответ

0 голосов
/ 03 июля 2018

Как вы добавляете элемент к BulletedList, создайте list из deselect item. А затем удалите его из BulletedList. Как ниже

 public List<string> elements = new List<string>();
 public List<string> deselect = new List<string>();


    protected void checkList_SelectedIndexChanged(object sender, EventArgs e)
    { foreach(ListItem item in checkList.Items)
        {
            if (item.Selected)
            {
                 elements.Add(item.Text);
            }
            else 
            {
             deselect.Add(item.Text);
            }

        }
        foreach (object o in elements)
        {   int exists = 0;
            for (int i = 0; i < BullList.Items.Count; i++)
            {

                if(BullList.Items[i].ToString() == o.ToString())
                {
                    exists++;
                }
            }
            if(exists == 0)
            {
                BullList.Items.Add(o.ToString());
            }
         }
      foreach (object o in deselect)
        {
            for (int i = 0; i < BullList.Items.Count; i++)
            {
                BullList.Items.Remove(o.ToString());
            }
        }
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...