Avatar billede scorp-d Nybegynder
24. oktober 2008 - 09:46 Der er 1 løsning

CheckBoxList, Få fat i ID som har alle checked værdier.

Hey...

Jeg har et lidt træls problem som umildbart virkede simpelt.
Jeg har lavet en hjemmeside som indeholder en CheckBoxList hvis datasource er en tabel magen til denne, som jeg ikke har mulighed for at ændre i:

http://www.scorp-d.dk/before.JPG

Det jeg så gerne vil have er at hvis brugeren vælger f.eks "One" og "Four", så får jeg på den ene eller anden måde GroupID'et 1 tilbage, og hvis det blot var "One" får jeg både 1 og 2 tilbage.

Jeg kan godt se nogle måder at løse det på, men vil gerne prøve at lave hjemmesiden så hurtig som mulig, så ville høre hvad den hurtigste måde er, evt om CheckBoxList'en har indbygget dette.

På forhånd tak.
Scorp-D
Avatar billede kalp Novice
24. oktober 2008 - 19:11 #1
ved ikke om jeg fattede en hat af det der:)
men her er et hurtigt ikke særlig gennemtestet bud.

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>kalp</title>
</head>
<body>
<form runat="server" id="kalp">
    <asp:CheckBoxList ID="List" runat="server">
    <asp:ListItem Value="1" Text="One"></asp:ListItem>
    <asp:ListItem Value="1" Text="Two"></asp:ListItem>
    <asp:ListItem Value="1" Text="Three"></asp:ListItem>
    <asp:ListItem Value="1" Text="Four"></asp:ListItem>
    <asp:ListItem Value="2" Text="One"></asp:ListItem>   
    <asp:ListItem Value="2" Text="Two"></asp:ListItem>         
    </asp:CheckBoxList><asp:Button ID="MagicButton" runat="server" Text="Get values!" OnClick="MagicButton_Click" />
    <br />
    <asp:Label ID="Status" runat="server" Text=""></asp:Label>
</form>
</body>
</html>







using System.Text;
using System;
using System.Collections.Generic;
using System.Web.UI.HtmlControls;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page {
    protected void Page_Load(object sender, EventArgs e){
   
    }
    private List<int> getSelectedValue(CheckBoxList list) {
        List<int> values = new List<int>();
        List<string> keys = new List<string>();
        foreach (ListItem item in list.Items) {
            int value = int.Parse(item.Value);
            if (!keys.Contains(item.Text) && item.Selected) keys.Add(item.Text);
            if (!values.Contains(value) && item.Selected || (keys.Contains(item.Text) && keys.Count < 2)) {
                values.Add(value);
            }
        }
        return values;
    }
    protected void MagicButton_Click(object sender, EventArgs e) {
        List<int> values = getSelectedValue(List);
        foreach (int value in values) Status.Text += value.ToString() + " ";
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester