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

 

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

C# DatagridView Cell click event

Îåêßíçóå áðü ôï ìÝëïò Tmark. Τελευταία δημοσίευση από το μέλος KelMan στις 20-03-2009, 09:18. Υπάρχουν 36 απαντήσεις.
Σελίδα 3 από 3 (37 εγγραφές)   < 1 2 3
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  18-03-2009, 17:19 49371 σε απάντηση της 49370

    Απ: C# DatagridView Cell click event

    OK. Νομίζω ότι όντως πρέπει η κουβέντα αυτή να γίνει στο δικό της χώρο. Ανυπομονώ να διαβάσω αυτά που έχεις να γράψεις γιατί οι πηγές που κοιτάζω στο internet δεν έχουν κάτι καινούριο να προσφέρουν.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  18-03-2009, 17:25 49372 σε απάντηση της 49370

    Απ: C# DatagridView Cell click event

    Μάλιστα,κατάλαβα τι λες.Και αυτός ο τρόπος σε τι με βοηθάει,σε σχέση με την προσέγγιση που κάνω εγω?

    Knowing is not enough , you must apply.
    Willing is not enough , you must do.
  •  18-03-2009, 20:55 49390 σε απάντηση της 49370

    Απ: C# DatagridView Cell click event

    KelMan:

    Άρα λοιπόν, όταν λες

       dataGridView1.DataSource = ds.Tables[0];

    κάνεις το data binding. Έχοντας ένα BindingSource πάνω στη φόρμα (πχ BindingSource1) μπορείς να πεις

       BindingSource1.DataSource = ds.Tables[0];
       dataGridView1.DataSource = BindingSource1;

     

    @Markos: Χαίρομαι που έθιξες το θέμα, έχω πράγματα να κουβεντιάσουμε, θα ανοίξω ένα νέο thread.

    να ρωτησω κι εγω κατι τωρα (κι ας φανει χαζο)?
    οκ αυτο που λες εχοντας ενα BindingSource πανω στην φορμα....κτλ
    αλλα πως ειναι καλητερα να το καλεσει σε μια εντελοs διαφορετικη φορμα? να το κανει Public?

    αν καταλαβαινω σωστα ετσι θα δεθει μονο στο συγκεκριμενο αντικειμενο ο πiνακας, αμα θελει τωρα (που θελει) να καλεσει το bindinsource που βρησκεται στην φορμα Α απο την Β?

    και αν μπορει καποιος να μου αναφερει βασικα πλεονεκτηματα στο να περνας ενα datatable μεσα απο ενα bindsource σε σχεση με LINQ2SQL διαχειρηση και σε σχεση με απλα sqlcommand string θα το εκτημουσα πολυ.

    ευχαριστω, αν τωρα αυτο εχει παει σε αλλο topic Letme know the link plz.


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  18-03-2009, 21:53 49391 σε απάντηση της 49372

    Απ: C# DatagridView Cell click event

    Tmark:
    Μάλιστα,κατάλαβα τι λες.Και αυτός ο τρόπος σε τι με βοηθάει,σε σχέση με την προσέγγιση που κάνω εγω?

    Βοηθάει όπως σου γράφω εδώ. Εν ολίγοις δεν χρειάζεται να ρωτάς το DataGridView ποιά είναι η επιλεγμένη εγγραφή (με βάση το column και το row). Την δείχνει πάντοτε το property Current του BindingSource και μάλιστα μπορείς να το ρωτήσεις από παντού. Οπότε μπορείς να κάνεις πάσα την επιλεγμένη εγγραφή σε όποιο control θες ή σε όποια νέα φόρμα θες.


    Vir prudens non contra ventum mingit
  •  18-03-2009, 22:27 49393 σε απάντηση της 49390

    Απ: C# DatagridView Cell click event

    Johnnyxp64:

    να ρωτησω κι εγω κατι τωρα (κι ας φανει χαζο)?
    οκ αυτο που λες εχοντας ενα BindingSource πανω στην φορμα....κτλ
    αλλα πως ειναι καλητερα να το καλεσει σε μια εντελοs διαφορετικη φορμα? να το κανει Public?

    αν καταλαβαινω σωστα ετσι θα δεθει μονο στο συγκεκριμενο αντικειμενο ο πiνακας, αμα θελει τωρα (που θελει) να καλεσει το bindinsource που βρησκεται στην φορμα Α απο την Β?

    Προσωπικά θα προτιμούσα να περάσω στη νέα φόρμα τη master εγγραφή πάρα ένα reference από object της καλούσας φόρμας. Με αυτόν τον τρόπο η detail φόρμα εξαρτάται από κάποια data που μπορεί να τα βρει με διάφορους τρόπους. Επίσης, μπορεί η detail φόρμα να εμφανίζεται μέσα από διαφορετικές master φόρμες χωρίς να τη νοιάζει ποιός την ανοίγει. Συνήθως κάνω και κάτι άλλο: Όταν για παράδειγμα τα data αυτά είναι null, τότε ενεργοποιώ τη φόρμα σε "new item" mode ενώ όταν δεν είναι, σε "view" ή "update" mode. Με την τεχνική του public BindingSource, για να ανοίξει η detail φόρμα θα πρέπει να υπάρχει ένα BindingSource από τη συγκεκριμένη master φόρμα, πράγμα αρκετά περιοριστικό όταν χρειάζεται να αλλάξεις λογικές, το πότε ακριβώς θα εμφανίζεται η φόρμα, κλπ.

    Johnnyxp64:
    και αν μπορεις να μου αναφερεις βασικα πλεονεκτηματα στο να περνας ενα datatable μεσα απο ενα bindsource σε σχεση με LINQ2SQL διαχειρηση και σε σχεση με απλα sqlcommand string θα το εκτημουσα πολυ.

    ευχαριστω, αν τωρα αυτο εχει παει σε αλλο topic Letme know the link plz.

    Χμμμ... Δεν έχω καταλάβει τι ακριβώς εννοείς. Για εξήγησε λίγο παραπάνω.

     


    Vir prudens non contra ventum mingit
  •  18-03-2009, 22:55 49395 σε απάντηση της 49393

    Απ: C# DatagridView Cell click event

    KelMan:

    Προσωπικά θα προτιμούσα να περάσω στη νέα φόρμα τη master εγγραφή πάρα ένα reference από object της καλούσας φόρμας. Με αυτόν τον τρόπο η detail φόρμα εξαρτάται από κάποια data που μπορεί να τα βρει με διάφορους τρόπους. Επίσης, μπορεί η detail φόρμα να εμφανίζεται μέσα από διαφορετικές master φόρμες χωρίς να τη νοιάζει ποιός την ανοίγει. Συνήθως κάνω και κάτι άλλο: Όταν για παράδειγμα τα data αυτά είναι null, τότε ενεργοποιώ τη φόρμα σε "new item" mode ενώ όταν δεν είναι, σε "view" ή "update" mode. Με την τεχνική του public BindingSource, για να ανοίξει η detail φόρμα θα πρέπει να υπάρχει ένα BindingSource από τη συγκεκριμένη master φόρμα, πράγμα αρκετά περιοριστικό όταν χρειάζεται να αλλάξεις λογικές, το πότε ακριβώς θα εμφανίζεται η φόρμα, κλπ.

    Αχα, μαλιστα! smart αυτο. Αλλα θα σε αγκάρευα πολυ αν ειχες χρονο για ενα μικρο demo σε vb.net το κομματι που λες οτι αν ειναι null pernas to current record as new / αν οχι Update/ View για να το σιγουρεψω?
    σαν λογικη το εχω καταλαβει 100% ενα κωδικα λιγο θα ηθελα να ολοκληρωσω την εικονα.Embarrassed

    Johnnyxp64:
    και αν μπορεις να μου αναφερεις βασικα πλεονεκτηματα στο να περνας ενα datatable μεσα απο ενα bindsource σε σχεση με LINQ2SQL διαχειρηση και σε σχεση με απλα sqlcommand string θα το εκτημουσα πολυ.

    Χμμμ... Δεν έχω καταλάβει τι ακριβώς εννοείς. Για εξήγησε λίγο παραπάνω.

    ναι φυσικα. λοιπον εγω εχω συνηθησει να δουλευω δεδομενα με 3 τροπους.
    (αναφέρω τυχαια παραδειγματα)

    1)κανω sql connection και μιλάω με την βαση με SQLexecuteNonQueary(string.format("SELECT blablabla FROM {0}"),myTableVar)==>και γεμιζω ενα DataTable

    2)me linq2sql Dim MyCollection = (From Item in DataContext.TableName Where Item.FieldName="blabla")==>και γεμιζω ενα DataTable

    3)κανοντας απλα ολα bindingcontrols μεσα απο το vs DataSource, Dataset, Tables, Drag & Drop σε μια φορμα και μετα κανω χρηση των TableAdapter και των BindingControl για update, view ktl===>εχω ετοιμα TablaAdapters αντι DataTable και κανω την δουλεια μου

    4)ο τροπος που λες δεν ειναι κατι "σαν" ενα μειγμα του 1 με του 3, ή του 2 με το 3? Γενικα αν πουμε οτι αυτο που λες ειναι ενας 4 χωριστος τροπος (για μενα) εσυ  ποιον θα επελεγες για μεγαλες βασης δεδομενων? (με πολλες εγγραφες και πινακες εννοω) και γιατι ποια τα + και τα -?

    ελπιζω να το ερμηνευσα καλητερα τωρα και παλη σε ευχαριστω.


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  20-03-2009, 09:18 49446 σε απάντηση της 49395

    Απ: C# DatagridView Cell click event

    Johnnyxp64:

    Αχα, μαλιστα! smart αυτο. Αλλα θα σε αγκάρευα πολυ αν ειχες χρονο για ενα μικρο demo σε vb.net το κομματι που λες οτι αν ειναι null pernas to current record as new / αν οχι Update/ View για να το σιγουρεψω?
    σαν λογικη το εχω καταλαβει 100% ενα κωδικα λιγο θα ηθελα να ολοκληρωσω την εικονα.Embarrassed

    Δυστυχώς αυτές τις μέρες δεν προλαβαίνω να γράψω κάποιο demo (και νομίζω δεν έχει μεγάλο νόημα όπως θα φανεί παρακάτω) οπότε θα εξηγήσω λίγο πιο αναλυτικά τι εννοώ. Έχοντας μια φόρμα με details (πχ ένα grid) πολλές φορές θέλουμε με κάποιον τρόπο (πχ διπλό κλικ, toolbar button, κλπ)  να ανοίξουμε την εγγραφη αναλυτικά σε μια νέα φόρμα για editing ή για να δούμε details που δεν εμφανίζονται στο grid. Η ίδια φόρμα μπορεί να χρησιμοποιηθεί για να κάνουμε add μια νέα εγγραφή, άρα λοιπόν η φόρμα αυτή παίζει δύο ρόλους. Αν ακολουθήσουμε την τεχνική κατά την οποία περνάμε την εγγραφή μέσω του constructor ή μέσω ενός property, τότε μπορούμε σε αυτή τη φόρμα να βάλουμε την εξής λογική: Όταν ανοίξει η φόρμα γίνεται έλεγχος και αν αυτό που περνάμε στην φόρμα (business object, DataRow, κλπ) είναι null/nothing τότε προετοιμάζουμε την φόρμα για insert. Ενεργοποιούμε, απανεργοποιούμε, κρύβουμε, εμφανίζουμε τα κατάλληλα controls και γενικά τρέχουμε ότι χρειάζεται να γίνεται κατά το insert. Αντίστοιχα αν ανοίξει η φόρμα και αυτό που περνάμε έχει τιμή, τότε πρόκειται για update οπότε κάνουμε τα ανάλογα. Με αυτόν τον τρόπο η φόρμα είναι αυτόνομη και μπορεί να τεσταριστεί πιο εύκολα.

    Johnnyxp64:

    ναι φυσικα. λοιπον εγω εχω συνηθησει να δουλευω δεδομενα με 3 τροπους.
    (αναφέρω τυχαια παραδειγματα)

    1)κανω sql connection και μιλάω με την βαση με SQLexecuteNonQueary(string.format("SELECT blablabla FROM {0}"),myTableVar)==>και γεμιζω ενα DataTable

    2)me linq2sql Dim MyCollection = (From Item in DataContext.TableName Where Item.FieldName="blabla")==>και γεμιζω ενα DataTable

    3)κανοντας απλα ολα bindingcontrols μεσα απο το vs DataSource, Dataset, Tables, Drag & Drop σε μια φορμα και μετα κανω χρηση των TableAdapter και των BindingControl για update, view ktl===>εχω ετοιμα TablaAdapters αντι DataTable και κανω την δουλεια μου

    4)ο τροπος που λες δεν ειναι κατι "σαν" ενα μειγμα του 1 με του 3, ή του 2 με το 3? Γενικα αν πουμε οτι αυτο που λες ειναι ενας 4 χωριστος τροπος (για μενα) εσυ  ποιον θα επελεγες για μεγαλες βασης δεδομενων? (με πολλες εγγραφες και πινακες εννοω) και γιατι ποια τα + και τα -?

    ελπιζω να το ερμηνευσα καλητερα τωρα και παλη σε ευχαριστω.

    Βασικά οι τρόποι που παρουσιάζεις δεν έχουν καμιά ιδιαίτερη διαφορά ως προς το DdataBinding αφού τελικά βάζεις όλα να καταλήγουν σε DataTables. Αυτό που λέω εγώ κολλάει στο κομμάτι του τι κάνεις αφού έρθουν τα data. Το DataBinding δεν είναι υποχρεωτικό να γίνεται μέσα από τους wizards και τις ευκολίες, μπορείς να το υλοποιήσεις κι εσύ με δικό σου κώδικα.


    Vir prudens non contra ventum mingit
Σελίδα 3 από 3 (37 εγγραφές)   < 1 2 3
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems