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

 

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

ListView Erotisi

Îåêßíçóå áðü ôï ìÝëïò SpySoftX. Τελευταία δημοσίευση από το μέλος SpySoftX στις 07-01-2005, 09:32. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  06-01-2005, 20:08 796

    ListView Erotisi

    θέλω να ρωτήσω για το listview. Θέλω να του δηλώσω να δείχνει στα items του τα records του data adapter μου ή του dataset.

    γράφω κανονικά το "listview1.items.add" αλλά μετά τι στο καλό του δηλώνεις για να φέρει σαν items το κάθε record της βάσης μου?

  •  06-01-2005, 21:10 797 σε απάντηση της 796

    Re: ListView Erotisi

    Το ListView δεν υποστηρίζει απ'ευθείας DataBinding. Η εύκολη λύση είναι να μην το χρησιμοποιήσεις και να πας στο DataGrid. Η ακριβή λύση είναι να χρησιμοποιήσεις έτοιμο ListView τρίτου κατασκευαστή που να υποστηρίζει το DataBinding που θέλεις. Η άλλη λύση είναι να κατασκευάσεις εσύ ένα ListView που να κάνει αυτόματο DataBinding! Τι στο καλό έχουμε το inheritance; Smile Περισσότερες πληροφορίες εδώ


    Vir prudens non contra ventum mingit
  •  06-01-2005, 21:26 798 σε απάντηση της 796

    Re: ListView Erotisi

    Δυστυχώς, το ListView δεν υποστηρίζει databinding, οπότε δεν μπορείς να του περάσεις κατευθείαν ένα dataset όπως με ένα datagrid. Ο περιορισμός αυτός ισχύει από γεννησιμιού του (κάπου στα Windows 95). Θα πρέπει να περάσεις τις γραμμές μία-μία. Ευτυχώς, θα βρεις ένα άρθρο με κώδικα στο MSDN που περιγράφει πως να φτιάξεις ένα custom listview control που να υποστηρίζει databinding.

    Αν αυτό σου φαίνεται φασαρία, και θέλεις να περάσεις τα δεδομένα με κώδικα μπορείς να χρησιμοποιήσεις τον παρακάτω κώδικα. Έχω συνδεθεί σε μια βάση που περιέχει ένα πίνακα MyTable με δύο στήλες:

    private void LoadAndShowDataWithDataSet()
    {
        sqlDataAdapter1.Fill(myDataSet1.MyTable);
        foreach(DataRow aRow in myDataSet1.MyTable.Rows)
        {
            DisplayItem(aRow[0].ToString(),aRow[1].ToString());
        }
    }

    private void DisplayItem(string firstColumn,string secondColumn)
    {
        ListViewItem newItem=listView1.Items.Add(firstColumn);
        newItem.SubItems.Add(secondColumn);
    }


    Θα πρέπει όμως να έχεις υπόψη ότι αν θέλεις να τροποποιήσεις τα δεδομένα του listview, θα πρέπει να γράψει επιπλέον κώδικα για να περάσεις τις αλλαγές στη βάση. Το custom control του MSDN καλύπτει και αυτή την περίπτωση.

    Αν αυτό δεν σε ενδιαφέρει, θα μπορούσες να χρησιμοποιήσεις ένα datareader αντί για ένα dataset για να πετύχεις καλύτερη ταχύτητα πρόσβασης στη βάση:

    private void LoadAndShowDataWithReader()
    {
        string mySelectQuery = "SELECT * FROM MyTable";
        SqlConnection myConnection = new SqlConnection("integrated security=SSPI;data source=MYSQLSERVER;initial catalog=Test");
        SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);   
        myConnection.Open();
     
        SqlDataReader myReader;
        myReader = myCommand.ExecuteReader();
        while (myReader.Read())
        {
            DisplayItem(myReader.GetString(0),myReader.GetString(1));
        }
        myReader.Close();
        myConnection.Close();   
    }


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  06-01-2005, 23:24 799 σε απάντηση της 796

    Re: ListView Erotisi

    παιδιά το listview το θέλω για να εμφανίζω κάποιες επαφές σε λίστα. Το άτιμο το datagrid δεν το θέλω αυτό το χρησιμοποιούμε αλλού. έχω ήδη ένα listview control διαφορετικό από αυτό της .Net αλλά δεν έχει data binding. οπότε πως μπορώ πολύ απλά να του φέρω τους πελάτες μέσα στο listview χωρίς να φτιάχνω δικό μου?

    ας είναι και με data reader έτσι και αλλιώς δεν χρειάζομαι τον data adapter σε αυτό το σημείο

  •  07-01-2005, 00:14 800 σε απάντηση της 799

    Re: ListView Erotisi

    Το sample που έγραψα δεν κάνει?


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-01-2005, 09:32 806 σε απάντηση της 800

    Re: ListView Erotisi

     pkanavos wrote:

    Το sample που έγραψα δεν κάνει?



    αυτό το βάζω μέσα στο listview? και χρησιμοποιώ access γιατί ξέχασα να το αναφέρω.

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