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

 

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

Πώς θα δώ τα δεδομένα ενός LinqDataSource μέσα από τον κώδικά μος;

Îåêßíçóå áðü ôï ìÝëïò agmarios. Τελευταία δημοσίευση από το μέλος agmarios στις 17-09-2009, 15:18. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-09-2009, 16:01 53743

    Πώς θα δώ τα δεδομένα ενός LinqDataSource μέσα από τον κώδικά μος;

    Αν δεν έχετε χρόνο ή διάθεση αρκεστείτε στο ερώτημα του τίτλου. Αν πάλι έχετε διάθεση να προτείνετε καλύτερη υλοποίηση ή ιδέα ακολουθεί η αναλυτική περιγραφή.


    έχω φτιάξει ένα User control το οποίο έχει 2 dropdownlists τα οποία γεμίζουν από 2 LinqDataSources αντίστοιχα και το ένα φιλτράρεται από την επιλογή του άλλου.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Κατηγορία<asp:DropDownList ID="DropCat" runat="server" AutoPostBack="True" 
    DataSourceID="LinqCat" DataTextField="catName" DataValueField="catId" />
    Υποκατηγορία<asp:DropDownList ID="DropSubCat" runat="server"
    DataSourceID="LinqSubCat" DataTextField="subName" DataValueField="subId" />

    <asp:LinqDataSource ID="LinqCat" runat="server"
    ContextTypeName="DataClassesDataContext" TableName="categories" Select="new (catId,catName)" >/

    <asp:LinqDataSource ID="LinqSubCat" runat="server"
    ContextTypeName="DataClassesDataContext" TableName="subCategories"
    Select="new (subId, subName, catId)" Where="catId == @catId">
    <WhereParameters>
    <asp:ControlParameter ControlID="DropCat" DefaultValue="0" Name="catId"
    PropertyName="SelectedValue" Type="Int32" />
    </WhereParameters>
    </asp:LinqDataSource>
    προφανώς έχει φτιαχτεί το "DataClassesDataContext" με τους αντίστοιχους πίνακες.

    Για την επικοινωνία του control με τις σελίδες έχω φτιάξει ένα property το οποίο επιστρέφει στη σελίδα το selectedValue του δεύτερου dropdownlist.

    1
    2
    3
    4
     
    public int subId
    {
            get { return Convert.ToInt32(DropSubCat.SelectedValue); }
    }
    Μέχρι εδώ όλα είναι καλά. Τι γίνεται όμως όταν η σελίδα πρέπει να περάσει τιμή στο control; Σκέφτομαι ότι θα πρέπει πλέον το property μου να αποκτήσει και set ( αφού δεν θα είναι πλέον readonly ). Αυτό που θα πρέπει να γίνεται μέσα στο set είναι να βρίσκω το αντίστοιχο catId μέσα στα δεδομένα του LinqSubCat για να το βάλω selectedValue στο DropCat. Αλλά πώς διαβάζω τα δεδομένα ενός LinqDataSource μέσα από τον κώδικά μου;

    υγ: η μετάβαση από vb σε c# είναι βασανιστική, η c που κάναμε στο πανεπιστήμιο ελάχιστα βοηθάει.


    Δημοσίευση στην κατηγορία:
  •  16-09-2009, 20:10 53756 σε απάντηση της 53743

    Απ: Πώς θα δώ τα δεδομένα ενός LinqDataSource μέσα από τον κώδικά μος;

    Υπάρχει περίπτωση να έχω καταλάβει λάθος, αλλα:

    Έχεις φτιάξει ενα Web User Control, και γεμίζεις τα DropDownLists από μια βάση. Τι εννοέις η σελίδα να περάσει τιμή στο Control?

    Θέλεις από τον κώδικα να αλλάζεις απλά το SelectedValue του DropSubCat, μετά απο κάποιον έλεγχο στα στοιχεία LinqSubCat?

    Αν είναι έτσι, το πρώτο που μου έρχετε στο μυαλό είναι, φτιάξε ένα LINQ Expression τραβώντας τα δεδομένα που θέλεις απο το DataContext,

    κάνε τους ελέγχους που θέλεις και πέρνα το αποτέλεσμα σου στα Controls μέσα στο User Control. Δεν νομίζω ότι πρέπει να παίξεις με το LinqDataSource,

    και νομίζω πως δεν μπορείς να έχεις πρόσβαση στα δεδομένα που έχει το LinqDataSource αν δεν το κάνεις Bind κάπου,

     


  •  17-09-2009, 00:33 53764 σε απάντηση της 53743

    Απ: Πώς θα δώ τα δεδομένα ενός LinqDataSource μέσα από τον κώδικά μος;

    Μπελάδες... Απ' ό,τι διαβάζω στο documentation, το LinqDataSource έχει ένα GetView method. Αυτό επιστρέφει ένα LinqDataSourceView. Ίσως σε βοηθήσει κι αυτό το post. Αν το λύσεις ανέβασε τη λύση και για 'μας.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  17-09-2009, 10:26 53773 σε απάντηση της 53764

    Απ: Πώς θα δώ τα δεδομένα ενός LinqDataSource μέσα από τον κώδικά μος;

    Ευχαριστώ πολύ για τις απαντήσεις. Θα το ξαναδώ και θα ανεβάσω τα νέα.
  •  17-09-2009, 15:18 53783 σε απάντηση της 53764

    Απ: Πώς θα δώ τα δεδομένα ενός LinqDataSource μέσα από τον κώδικά μος;

    Λοιπόν, το άρθρο δούλεψε άψογα!! Το μόνο που χρειάστηκε ήταν να βγάλω το where και την whereparameter από το αντικείμενό. Με παιδεύουν κάποια πράγματα ακόμη αλλά αυτός ο σκόπελος ξεπεράστηκε.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems