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

 

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

ComboBox Autocomplete (ArgumentException)

Îåêßíçóå áðü ôï ìÝëïò Τάσκος Γιώργος. Τελευταία δημοσίευση από το μέλος Johnnyxp64 στις 08-03-2009, 00:39. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-03-2009, 20:54 48986

    ComboBox Autocomplete (ArgumentException)

    Καλησπέρα σε όλους,

    Θα είμαι όσο ποιο αναλυτικός γίνεται.
    Έχω ένα DataSet (CustomersDataSet) με ένα DataTable (Customers) κι έχω φτιάξει ένα DataSource (CustomersDataSet).
    Από αυτό το DataSource έχω πετάξει στην φόρμα μου τα πεδία (Details),
    όπου 4 από αυτά είναι ComboBoxes και έχω ρυθμίσει τα properties
    AutoCompleteSource = ListItems και AutoCompleteMode = SuggestAppend.
    Επίσης σε καθένα από αυτά έχω ορίσει Use Data Bound Items με
    DataSource = customersBindingSource, Display Member = "Member", το Value Member νομίζω
    το βάλω δεν το βάλω δεν παίζει ρόλο, εγώ το Text έχω DataBind...τουλάχιστον δεν φταίει σίγουρα αυτό
    γιατί το δοκίμασα σε όλες τις περιπτώσεις.

    Νομίζω πως καταλάβατε ότι θέλω να βλέπει τις τιμές στα πεδία στην βάση και να σου κάνει SuggestAppend την ώρα που πληκτρολογείς!

    Το πρώτο πρόβλημα μου είναι ότι μου δείχνει και διπλές εγγραφές, το οποίο το θεωρώ λογικό αλλά δεν ξέρω πως να το λύσω.
    Σκέφτηκα να κάνω ένα DataSet για κάθε control αλλά δεν μου αρέσει η σκέψη. Ίσως εδώ πέρα κάποιος να έχει να μου προτείνει
    κάτι ποιο λειτουργικό... ή κάποια άλλη προσέγγιση σε αυτό που θέλω να κάνω.

    Και το δεύτερο είναι κάτι που δεν μπορώ να καταλάβω γιατί ενώ πληκτρολογώ μου κάνει SuggestAppend σωστά, αν πατήσω click
    με το ποντίκι σε κάποια τιμή στο παράθυρο που εμφανίζεται απο κάτω δουλεύει κανονικά, ενώ αν το διαλέξω με τα βελάκια
    σκάει και μου πετάει ArgumentException by user code unhandled με το παρακάτω description.

    "Cannot bind to the property or column "OnomaColumn" on the DataSource.
    Parameter name: dataMember"
    Σκεφτηκά ότι κάνει κάποιο validate που έχει σχέση με το Use Data Bound Items, αλλά δεν μπορώ να το αντιμετωπίσω.

    Ευχαριστώ.

  •  08-03-2009, 00:39 48990 σε απάντηση της 48986

    Απ: ComboBox Autocomplete (ArgumentException)

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

    τωρα για το σφαλμα που τρως πιθανον οριζεις ενα dattamamber και αυτο ειναι περιτο.

    κοιτα απλα για να κανεις αυτο που θες οπως σου εδιξα και στην εικονα μου προ ωρων, 

    κανεις τα εξεις:

    ας υποθεσουμε οτι καπου αποθηκευεις εγραφες kai ενα πεδιο απο αυτα λεgεται Επαγγελμα
    φυσικα εσυ θελεις να εχεις μια ετοιμη λιστα απο επαγγελματα και οταν ο αλλος πληκτρολογει να του προτινει το combobox κατι κοντα σε αυτο που γραφει.

    1)θελεις ενα πινακα που θα εχεις τις εγγραφες ολες και ενα πεδιο αυτου του πινακα θα ειναι και το επαγγελμα

    2)θες εναν αλλο πινακα (με ενα Id, και μια περιγραφη μονο) και μεσα τους θα καταχωρήσεις μια φορά όλα τα δεδομενα που θες να εμφανίζονται, τωρα αυτο ητε καντο απο την βαση κατευθειαν η δωσε ενα interface στον χρηστη να περνα οτι θελει αυτος.

    3)τελος πανω στην φορμα σου σχεδιαζεις ενα combobox (αν και οπως σου ετοιμαζω στο μαιλ το GridLookUp της DevExpress ειναι τελειο για την δουλεια αυτη)

    αφου λοιπον ετοιμασεις το αντικειμενο σου που θες οριζεις απο τις ιδιοτητες τους οτι τηα κανει autocomplete append style. AutocompleteList Datasource οριζεις ενα ήτε datatable(κωδικα) ήτε ενα tableAdapter(drag-drop) τον μικρο τον πινακα που εφτιαξες με τις τιμες.

    Προσοχη τωρα, Οριζεις το ΑυτοCompleteDataSource=DataTable or TableAdapter ειπαμε
    μετα το DisplayMember=ColumnPerigrafi του μικρου πινακα
    kai ValueMember=to IDcolumn του μικρου παλι πινακα

    ετσι θα εμφανιζονται οι τιμες που θες οπως θες.

    ΑΛΛΑ το DataSource του Combo θα το ορισεις να κοιτα τον μεγαλο σου πινακα και μαλιστα να ειναι BInded me to Πεδιο Επαγγελμα, Ετσι ωστε οτι επιλεγεις απο την λιστα να αποθηεκευεται μεσα στον μεγαλο πινακα, αλλα εκει θα γραφεται το ID (ετσι ειναι το σωστο) και οταν θα τρεχεις την εφαρμωγη το αντικειμενο θα διαβαζει παραδειγμα το ID=13 και θα βλεπει οτι το 13 αντιστοιχει στο επαγγελμα "Βουλευτης" μεσα στον μικρο σου πινακα.

    εσυ μαλλον ανα καταλαβα καλα βλεπεις 2-3φορες τα ιδια γιατι απλα του λες να τραβα τι τιμες απο τον μεγαλο πινακα - τον ευατο του, αν εκει ειναι περασμενο 4 φορες το ιδιο λογικο να το βλεπεις ετσι. γενικα πρεπει αυτα να ειναι Παντα dιαφορετικοι πινακες, Ενας ειναι ο βασικος που γραφεις και γυρο του πολοι βοηθητικη πινακες με ready values.

    goodluck

    sorry gia ta lathoi nystazo....:(


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems