How can I get the CheckBoxList selected values, what I have doesn't seem to work C#.NET/VisualWebPart

后端 未结 6 2076
盖世英雄少女心
盖世英雄少女心 2020-11-30 07:53

I am creating a CheckBoxList in a class file and am using an HTMLTextWriter to render the control.

I\'m using the following code to store the selected values in a s

相关标签:
6条回答
  • 2020-11-30 08:26

    // aspx.cs

    // Load CheckBoxList selected items into ListBox

        int status = 1;
        foreach (ListItem  s in chklstStates.Items  )
        {
            if (s.Selected == true)
            {
                if (ListBox1.Items.Count == 0)
                {
                    ListBox1.Items.Add(s.Text);
    
                }
                else
                {
                    foreach (ListItem list in ListBox1.Items)
                    {
                        if (list.Text == s.Text)
                        {
                            status = status * 0;
    
                        }
                        else
                        {
                            status = status * 1;
                        }
                    }
                    if (status == 0)
                    { }
                   else
                    {
                        ListBox1.Items.Add(s.Text);
                    }
                    status = 1;
                }
            }
        }
    }
    
    0 讨论(0)
  • 2020-11-30 08:29

    Try something like this:

    foreach (ListItem listItem in YrChkBox.Items)
    {
        if (listItem.Selected)
        { 
           //do some work 
        }
        else 
        { 
          //do something else 
        }
    }
    
    0 讨论(0)
  • 2020-11-30 08:34

    An elegant way to implement this would be to make an extension method, like this:

    public static class Extensions
    {
        public static List<string> GetSelectedItems(this CheckBoxList cbl)
        {
            var result = new List<string>();
    
            foreach (ListItem item in cbl.Items)
                if (item.Selected)
                    result.Add(item.Value);
    
            return result;
        }
    }
    

    I can then use something like this to compose a string will all values separated by ';':

    string.Join(";", cbl.GetSelectedItems());
    
    0 讨论(0)
  • 2020-11-30 08:38

    check boxlist selected values with seperator

     string items = string.Empty;
            foreach (ListItem i in CheckBoxList1.Items)
            {
                if (i.Selected == true)
                {
                    items += i.Text + ",";
                }
            }
            Response.Write("selected items"+ items);
    
    0 讨论(0)
  • 2020-11-30 08:39

    // Page.aspx //

    // To count checklist item
    
      int a = ChkMonth.Items.Count;
            int count = 0;
    
            for (var i = 0; i < a; i++)
            {
                if (ChkMonth.Items[i].Selected == true)
                {
                    count++;
                }
            }
    

    // Page.aspx.cs //

      // To access checkbox list item's value //
       string YrStrList = "";
            foreach (ListItem listItem in ChkMonth.Items)
            {
                if (listItem.Selected)
                {
                    YrStrList = YrStrList + "'" + listItem.Value + "'" + ",";
                }
    
            }
    
            sMonthStr = YrStrList.ToString();
    
    0 讨论(0)
  • 2020-11-30 08:49

    In your ASPX page you've got the list like this:

        <asp:CheckBoxList ID="YrChkBox" runat="server" 
            onselectedindexchanged="YrChkBox_SelectedIndexChanged"></asp:CheckBoxList>
        <asp:Button ID="button" runat="server" Text="Submit" />
    

    In your code behind aspx.cs page, you have this:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // Populate the CheckBoxList items only when it's not a postback.
                YrChkBox.Items.Add(new ListItem("Item 1", "Item1"));
                YrChkBox.Items.Add(new ListItem("Item 2", "Item2"));
            }
        }
    
        protected void YrChkBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Create the list to store.
            List<String> YrStrList = new List<string>();
            // Loop through each item.
            foreach (ListItem item in YrChkBox.Items)
            {
                if (item.Selected)
                {
                    // If the item is selected, add the value to the list.
                    YrStrList.Add(item.Value);
                }
                else
                {
                    // Item is not selected, do something else.
                }
            }
            // Join the string together using the ; delimiter.
            String YrStr = String.Join(";", YrStrList.ToArray());
    
            // Write to the page the value.
            Response.Write(String.Concat("Selected Items: ", YrStr));
        }
    

    Ensure you use the if (!IsPostBack) { } condition because if you load it every page refresh, it's actually destroying the data.

    0 讨论(0)
提交回复
热议问题