it-swarm.com.de

Wie kann ich die ausgewählten CheckBoxList-Werte abrufen? Was ich habe, scheint C # .NET/VisualWebPart nicht zu funktionieren

Ich erstelle eine CheckBoxList in einer Klassendatei und verwende einen HTMLTextWriter zum Rendern des Steuerelements. 

Ich verwende den folgenden Code, um die ausgewählten Werte in einer Zeichenfolge zu speichern:

string YrStr = "";
for (int i = 0; i < YrChkBox.Items.Count; i++)
{
    if (YrChkBox.Items[i].Selected)
    {
        YrStr += YrChkBox.Items[i].Value + ";"; 
    }
}

Ich habe den Code durchgegangen, und es scheint, als würde er nicht die Innenseite der if-Anweisung treffen. Das ausgewählte Wertattribut ist jedes Mal falsch ... Hat jemand eine Idee, wie ich das ansprechen kann? 

Ich fülle es mit folgendem auf: 

 YrChkBox.Items.Add(new ListItem("Item 1", "Item1"));
12
anpatel

Auf Ihrer ASPX-Seite haben Sie die folgende Liste:

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

In Ihrem Code hinter der aspx.cs-Seite haben Sie Folgendes:

    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));
    }

Stellen Sie sicher, dass Sie die if (!IsPostBack) { }-Bedingung verwenden, denn wenn Sie sie bei jeder Seitenaktualisierung laden, werden die Daten tatsächlich zerstört.

27
Walk

Versuchen Sie etwas so:

foreach (ListItem listItem in YrChkBox.Items)
{
    if (listItem.Selected)
    { 
       //do some work 
    }
    else 
    { 
      //do something else 
    }
}
5
MethodMan

kontrollkästchenliste ausgewählte Werte mit Trennzeichen

 string items = string.Empty;
        foreach (ListItem i in CheckBoxList1.Items)
        {
            if (i.Selected == true)
            {
                items += i.Text + ",";
            }
        }
        Response.Write("selected items"+ items);
3
kavitha Reddy

Eine elegante Möglichkeit, dies zu implementieren, wäre eine Erweiterungsmethode wie folgt:

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;
    }
}

Ich kann dann so etwas verwenden, um eine Zeichenfolge zu erstellen. Alle Werte werden durch ';' getrennt:

string.Join(";", cbl.GetSelectedItems());
2
Fred Mauroy

// 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
priya uthaya