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

 

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

Delete selected rows in datagrid view

Îåêßíçóå áðü ôï ìÝëïò emasmind. Τελευταία δημοσίευση από το μέλος infoCENTER στις 01-03-2007, 11:53. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-03-2007, 09:56 25686

    Delete selected rows in datagrid view

    Γεια σας,

    το προβλημα μου ειναι οτι δεν μπορω να διαγραψω τις επιλεγμένες γραμμες σε ενα datagrid (συγκεκριμενα σε C1TrueDbGrid).

    Εκτελώ τον ακολουθο κωδικα:

    Dim o As Object 'Selected Rows

    Dim todelRows As New Collection 'Collection for row to delete

    Dim selRow As Integer

     

    For Each o In Me.C1TrueDBGrid1.SelectedRows

    todelRows.Add(CInt(o.ToString))

    Next o

     

    For i As Integer = todelRows.Count To 0 Step -1

    Me.C1TrueDBGrid1.Delete(selRow)

    Next i

     

    το προβλημα ειναι οτι με τον συγκεκριμενο κωδικα διαγραφονται κατα μια περισσότερες επιλεγμενες γραμμες.

    Δοκιμασα να τρεξω το loop για το selectedrows collection αλλα προέκυψε σφαλμα

    Collection was modified; enumeration operation may not execute.

    Καποια βοηθεια;

  •  01-03-2007, 10:25 25688 σε απάντηση της 25686

    Απ: Delete selected rows in datagrid view

    Αν και δεν έχω δουλέψει με το συγκεκριμένο control, θα σου δώσω ένα γενικότερο hint: Όταν δουλεύεις με binded controls η λογική σου θα πρέπει να είναι ΑΠΟ τα data ΠΡΟΣ το control και όχι το ανάποδο. Δηλαδή, διαγράφεις τα data από το datasource και βλέπεις το control με τα νέα περιεχόμενα. Απλά από το control καταλαβαίνεις ΤΙ πρέπει να διαγράψεις (πχ το selected datarow ή τα ID's όλων των selected datarows ή το collenction από τα selected datarows).

    Ρίξε μια ματιά στα HowTos του DataGridView, κάπως ανάλογα θα πρέπει να δουλεύει και το C1TrueDbGrid...


    Vir prudens non contra ventum mingit
  •  01-03-2007, 11:35 25700 σε απάντηση της 25686

    Απ: Delete selected rows in datagrid view

    Δοκίμασε το παρακάτω:

    for(int i=grid.SelectedRows.Count-1; i > -1; i--)
    {
     grid.Bookmark = grid.SelectedRowsIdea;
     grid.Delete();
    }

    grid.SelectedRows.Clear();

    Το βρήκα στο support της C1, ψάξε και εσύ αν δεν σου δουλέψει.
    http://helpcentral.componentone.com/CS/forums/17/ShowForum.aspx

  •  01-03-2007, 11:53 25702 σε απάντηση της 25686

    Απ: Delete selected rows in datagrid view

    Το πρόβλημά σου είναι η Count.

    Τι σημαίνει αυτό σε σχέση με τον παραπάνω κώδικα που γράφεις. Ο χρήστης επιλέγει δύο Rows για διαγραφεί. Οπότε σωστά η Count θα είναι ίσον με δύο. Όμως η δήλωση todelRows.Count To 0 Step -1 θα κάνει loop τρεις φορές.

    Μία για το 2, άλλη μία για το 1 και άλλη μία για το 0.

    Μπορείς να το προσπεράσεις αυτό βάζοντας Count-1 ή αντί το To 0 να το κάνεις To 1.

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems