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

 

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

Σχετικά με datagridview [solved]

Îåêßíçóå áðü ôï ìÝëïò rama. Τελευταία δημοσίευση από το μέλος cap στις 28-08-2006, 17:50. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-08-2006, 03:08 16018

    Σχετικά με datagridview [solved]

    Προσπαθώ να υλοποιήσω το εξής απλό:
    Έχω ένα datagridview στο datasource του οποίου συνδεω ένα dataTable. Με διπλό κλικ σε κάποιο cell ανοίγει η detail φόρμα για edit της εγγραφής. Χρησιμοποιώ το CellMouseDoubleClick event και από εκεί με το rowIndex από το event argument παίρνω το επιλεγμένο row. Από εκεί παίρνω το DataRow από το DataTable με το συγκεκριμένο index και όλα καλά. Όταν όμως κάνω sort η σειρά των rows στο grid είνια διαφορετική από την σειρά των rows στο dataTable με αποτέλεσμα να διαβάζω λάθος row. Μπορώ με κάποιο τρόπο να παίρνω dataRow απ'ευθείας από το grid?


  •  28-08-2006, 09:17 16022 σε απάντηση της 16018

    Απ: Σχετικά με datagridview

    Για να λες DataGridView, υποθέτω δουλεύεις σε Visual Studio 2005. Σε αυτή την περίπτωση το καλύτερο που έχεις να κάνεις είναι να βάλεις ένα BindingSource object με DataSource στο DataTable και να κάνεις bind το DataGridView στο BindingSource. To BindingSource επιτρέπει filtering και sorting, άρα το sorting θα το κάνεις με το property Sort και όχι πάνω στο DataGridView. Επίσης, έχει ένα property Current που είναι η τρέχουσα εγγραφή, το οποίο θα χρησιμοποιήσεις για να διαβάσεις την επιλεγμένη εγγραφή, άσχετα με την ταξινόμηση που θα έχει γίνει. Είναι λίγο tricky το πως Θα το μετατρέψεις σε DataRow. Πρέπει να το γυρίσεις σε DataRowView και να πάρεις το Row property που θα το γυρίσεις σε DataRow, δηλαδή κάτι σαν το παρακάτω:

    dtRow = CType(CType(BindingSource1.Current, DataRowView).Row, DataRow)

    Φυσικά, αν έχεις Typed Dataset μπορείς αντί για DataRow να βάλεις το αντίστοιχο Typed DataRow (πχ OrdersDataRow)
    Vir prudens non contra ventum mingit
  •  28-08-2006, 09:22 16023 σε απάντηση της 16018

    Απ: Σχετικά με datagridview

    Υπάρχει και το:

    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()
    while (!dead) learn();
  •  28-08-2006, 09:42 16024 σε απάντηση της 16018

    Απ: Σχετικά με datagridview

    Δοκίμασε και αυτό:

                NorthwindDataSet.CustomersRow customersRow;
                customersRow = (NorthwindDataSet.CustomersRow)((DataRowView)dataGridView1.Rows[e.RowIndex].DataBoundItem).Row;
                MessageBox.Show(customersRow.CompanyName);

     

    Φυσικά ισχύουν όσα λέει και ο Μάνος!


    while (!dead) learn();
  •  28-08-2006, 17:50 16060 σε απάντηση της 16018

    Απ: Σχετικά με datagridview [solved]

    Παρακαλούμε μην αλλάζετε τον αρχικό τίτλο της δημοσίευσης όταν αυτή επιλύεται, αλλά επιλέγετε την κατάστση της δημοσίευσης "Εχει επιλυθεί" για να τη χαρακτηρίσετε ολοκληρωμένη.
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

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