Checkbox list, metoda selected zawsze zwraca false

Odpowiedz Nowy wątek
2018-12-04 21:06
0

Witam tworzę sobie formularz sklepu i mam stworzony checkbox list w pliku *.aspx
wygląda on tak

    <form id="form1" runat="server">
        <asp:Label id="myLabel" runat="server">Test </asp:Label>  
        <img src="icones/cart.png" alt="Smiley face" height="3%" width="3%">
        <center><asp:Label ID="Label1" runat="server" Font-Size="Large" ForeColor="Crimson">Wybierz kategorię pokemonów</asp:Label></center>

            <asp:RadioButtonList ID="PokemonType" runat="server" AutoPostBack= "true">
            <asp:ListItem Selected = "true">Wodny</asp:ListItem>
            <asp:ListItem>Ognisty</asp:ListItem>
            <asp:ListItem>Latający</asp:ListItem>
            <asp:ListItem>Elektryczny</asp:ListItem>

        </asp:RadioButtonList>

         <br /><br />   

        <center><asp:Label ID="Label2" runat="server" Font-Size="Large" ForeColor="Crimson">Wybierz pokemona z listy</asp:Label></center>
        <asp:CheckBoxList id="Pokemons" DataTextField= "name" RepeatDirection="Vertical" RepeatLayout="Flow" TextAlign="Right"
        runat="server"/>

             <br> <br> <br>
        <asp:Button id="b1" Text="Dodaj zaznaczone" runat="server" />
                </form>

oraz w code behind mam stworzone dodawanie do tej listy nowych obiektów i sprawdzanie które są zaznaczone, problem w tym że zawsze każdy jest niezaznaczony pomimo tego że go zaznaczyłem

 protected void Page_Load(object sender, EventArgs e){

            // check if page is post back (user clicked button)

            for (int i = 0; i < Pokemons.Items.Count; i ++){ // sprawdzam które są zaznaczone
                Console.Write(Pokemons.Items[i].Selected);
            }

            // adding new pokemons to list after changing the category
            Pokemons.Items.Clear(); // czyszczę i dodaję na nowo bo user może zmienić grupę pokemonów
            List<Product> temp = new List<Product>();

            foreach (Product p in productList)
            {
                if (p.category.Equals(PokemonType.SelectedValue)){
                    temp.Add(p);
                }
            }

            // binding value to set own class as list item in checkbox 
            Pokemons.DataSource = temp;

            Pokemons.DataBind();
}

Nie wiem dlaczego tak się dzieje, nie może mi zczytywać wartości nowych gdyż najpierw mam sprawdzenie
Proszę się nie śmiać z tematu :P

edytowany 1x, ostatnio: Ktos, 2018-12-04 21:53

Pozostało 580 znaków

2018-12-05 00:18

Ale gdzie Ty to sprawdzasz, w Page_Load? To raczej trudno, żeby działało, bo eventy kontrolek odpalane są później. Powinieneś zaimplementować obsługę OnSelectedIndexChanged, jak w przykładzie tutaj: https://docs.microsoft.com/en[...]xlist?view=netframework-4.7.2

Alternatywnie, możesz też przestać zajmować się paleontologią i uczyć czegoś bardziej na czasie.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
przepraszam ale kawką się lekko chlapłem aż, spodobało mi się i dla wyjaśnienia, paleontologia - nauka z pogranicza biologii i geologii, zajmująca się organizmami kopalnymi, wyprowadzająca na podstawie skamieniałości i śladów działalności życiowej organizmów wnioski ogólne o życiu w przeszłości - john_doe 2018-12-05 11:37

Pozostało 580 znaków

2018-12-05 20:20
0

@somekind dzięki przyczyniłeś się do rozwiązania problemu

  1. Dodałem listenera na przycisk (bo akurat jego używam)
  2. Nie dałem autoPostBack w checkboxList

chwilowo muszę się zająć taką paleontologią gdyż prowadzący na studiach takiej wymaga :P

Można z ciekawości zapytać jaka uczelnia? - mad_penguin 2018-12-05 20:21
Pewnie, PWr wydział Informatyki i Zarządzania kierunek Informatyka - Masterpc96 2018-12-05 20:25
No jak na studiach wymagają, to jesteś usprawiedliwiony. Jak Ci się spodoba, to mogę Ci potem dać namiary firm paleontologicznych we Wrocławiu. ;) - somekind 2018-12-05 20:39
Wolę androida także to tylko doraźna paleontologia :D - Masterpc96 2018-12-05 20:41

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0