Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πως πιάνεις την τελεταία επιλογή σε ένα checkboxlist

Îåêßíçóå áðü ôï ìÝëïò Firebrand. Τελευταία δημοσίευση από το μέλος Firebrand στις 29-11-2009, 16:32. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-11-2009, 19:31 55217

    Πως πιάνεις την τελεταία επιλογή σε ένα checkboxlist

    Γεια χαρά σε όλους!

    Έχω το εξής προβληματάκι.

    Προσπαθώ να κρατάω σε μια μεταβλητή την τελευταία επιλογή που έχει γίνει σε ένα checkboxlist control (ASP.net και VB.net) αλλά ότι και αν δοκιμάσω κρατάει παντα το lower index. Λίγη βοήθεια με κάποια λογική για να πιάνω την τελευταία επιλογή. Κατά προτίμηση όχι άλλο control γιατί είναι παίδεμα. Ευχαριστώ.


  •  17-11-2009, 08:02 55222 σε απάντηση της 55217

    Απ: Πως πιάνεις την τελεταία επιλογή σε ένα checkboxlist

    Το Control αυτό κρατάει όλα τα ckecked items και όχι μόνο το πρώτο. Π.χ γράψε κάτι σαν αυτό:

       mess.Text="<p>Selected Item(s):</p>"
       for i=0 to check1.Items.Count-1
         if check1.Items(i).Selected then
           mess.Text+=check1.Items(i).Text + "<br />"
         end if
       next

    Τώρα προφανώς για να πάρεις το τελευταίο θα πάρεις ανάποδα το Loop 





    Manos
  •  17-11-2009, 19:50 55242 σε απάντηση της 55222

    Απ: Πως πιάνεις την τελεταία επιλογή σε ένα checkboxlist

    manosB:
    Το Control αυτό κρατάει όλα τα ckecked items και όχι μόνο το πρώτο. Π.χ γράψε κάτι σαν αυτό:

       mess.Text="<p>Selected Item(s):</p>"
       for i=0 to check1.Items.Count-1
         if check1.Items(i).Selected then
           mess.Text+=check1.Items(i).Text + "<br />"
         end if
       next

    Τώρα προφανώς για να πάρεις το τελευταίο θα πάρεις ανάποδα το Loop 






    Μάλλον κάπου σε έχασα ή το έθεσα εγώ λάθος εξ' αρχής. Αυτό που θέλω είναι να κρατάω σε μια μεταβλητή το τελευταίο check ή uncheck του χρήστη.
  •  18-11-2009, 07:54 55252 σε απάντηση της 55242

    Απ: Πως πιάνεις την τελεταία επιλογή σε ένα checkboxlist

    Λοιπόν με έκανες να ανοίξω VS βρε μπαγάσα... 

    Έστω η aspx σελίδα περιέχει 
    <asp:checkboxlist 
        id="cbl1" 
        runat="server"
        cellpadding="5"
        cellspacing="5"
        repeatcolumns="3" 
        repeatlayout="Table"
        textalign="Right"
    >
        <asp:ListItem value="12">Blue</asp:ListItem>
        <asp:ListItem value="11">Red</asp:ListItem>
        <asp:ListItem value="2">Green</asp:ListItem>
        <asp:ListItem value="32">Purple</asp:ListItem>
        <asp:ListItem value="8">Black</asp:ListItem>
        <asp:ListItem value="15">Gold</asp:ListItem>
    </asp:checkboxlist>
        </div>
        <div>
        <asp:Button  
        id="butOK"
        text="Submit"
        type="Submit"
        onclick="SubmitBtn_Click" 
        runat="server"
    />
        
        </div>
    Τότε αν θες πχ στο κουμπί να κρατάς μια λίστα με όλες τις επιλεγμένες τιμές τότε απλά γράφεις κάτι σαν και αυτό 
        Protected Sub SubmitBtn_Click()
    
            Dim mySelectedValues As New List(Of String)
            For i = 0 To cbl1.Items.Count - 1
                If cbl1.Items(i).Selected Then
                    mySelectedValues.Add(cbl1.Items(i).Value.ToString)
                End If
            Next
            If mySelectedValues.Count = 0 Then Return
    
            For Each myString As String In mySelectedValues
                Response.Write(myString + "<br />")
            Next
    
        End Sub
    Τώρα τι θα την κάνεις τη λίστα που κράτησες είναι δικό σου θέμα. Εγώ απλώς κάνω ένα Response.Write. Εσύ μπορείς να την βάλεις σε μια βάση, να γράψεις ένα Xml, Να κρατήσεις μια Session μεταβλητή. Εξαρτάται πάντα τι θέλεις να κάνεις.
    Αντί να βάλεις αυτό τον κώδικα στο submit μπορείς να χρησιμοποιήσεις και το OnSelectedIndexChanged event αν δεν θες να το πιάνεις στο submit. Δηλαδή στο παραπάνω παράδειγμα θα συμπληρώσεις στην aspx σελίδα στο checkboxlist το παρακάτω:
    AutoPostBack="true" OnSelectedIndexChanged ="SubmitBtn_Click" 





    Manos
  •  19-11-2009, 13:23 55290 σε απάντηση της 55252

    Απ: Πως πιάνεις την τελεταία επιλογή σε ένα checkboxlist

    Ευχαριστώ! Θα το κοιτάξω.
  •  29-11-2009, 16:32 55535 σε απάντηση της 55290

    Απ: Πως πιάνεις την τελεταία επιλογή σε ένα checkboxlist

    Ευχαριστώ πολύ για την βοήθεια!

    Τελικά χρησιμοποίησα το παρακάτω το οποίο το τρέχω μέσα από το selected index changed event:

            Dim result As String = Request.Form("__EVENTTARGET")
            Dim Checked As String = ""
            Dim CheckedBox() As String = {}
            CheckedBox = result.Split("$")
            Dim index As Integer = Integer.Parse(CheckedBox(CheckedBox.Length - 1))
            Dim whatwaschecked As String = checkboxlist1.items(index).text
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems