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

 

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

Πέρασμα παραμέτρων από javascript function σε server side method

Îåêßíçóå áðü ôï ìÝëïò YiannisF. Τελευταία δημοσίευση από το μέλος tsavos στις 26-10-2007, 13:40. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-10-2007, 17:28 36560

    Πέρασμα παραμέτρων από javascript function σε server side method

    Καλησπέρα,

    μήπως γνωρίζει κανείς πώς μπορώ να περάσω μια παράμετρο που είναι δηλωμένη σε javascript σε μια μέθοδο που έχω σε server side;

    Δηλαδή θα ήθελα να κάνω κάτι σαν το παρακάτω:

    <script type="text/javascript" language="javascript">
        function foo()
        {
            var aParameter = "Some words";
            <% ServerSideMethod(aParameter); %>
        }
    </script>

    Το πρόβλημα είναι πώς η παράμετρος
    aParameter δεν είναι προσβάσιμη από το context <% %>
    .::yf::.
  •  24-10-2007, 21:23 36568 σε απάντηση της 36560

    Απ: Πέρασμα παραμέτρων από javascript function σε server side method

    Δε γίνεται αυτό, καθώς οτιδήποτε σε javascript εκτελείται στον client, και αφού εκτελεστεί ο server side κώδικας.

    Ο μόνος τρόπος για να εκτελέσεις ένα server side method και να τυπώσεις τα αποτελέσματα, ξεκινώντας (initiating) την κλήση από javascript, είναι να χρησιμοποιήσεις κάποιο AJAX framework (ή απλά χρησιμοποιώντας το XmlRequestObject).


    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  25-10-2007, 14:12 36598 σε απάντηση της 36568

    Απ: Πέρασμα παραμέτρων από javascript function σε server side method

    Αφού μπορώ να καλέσω μια server side method κανονικά από javascript. Απλά δεν μπορώ να της περάσω παραμέτρους. Αν δηλαδή δεν έχει παραμέτρους η μέθοδος τότε εκτελείται κανονικά. Αλλά δεν είναι δυνατόν να πρέπει οπωσδήποτε να μην έχει παραμέτρους.

    .::yf::.
  •  25-10-2007, 14:19 36599 σε απάντηση της 36598

    Απ: Πέρασμα παραμέτρων από javascript function σε server side method

    Όχι ακριβώς. Στην ουσία το παραπάνω <%= %> snippet θα εκτελέσει την server side method σου, και θα εκτυπώσει το αποτέλεσμά της στον HTML κώδικα (άρα θα είναι και ορατό από τον χρήστη αν κάνει view source.
    Η server side method δηλαδή, δεν εκτελείται όταν εκτελεστεί η javascript, αλλά πολύ νωρίτερα.

    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  26-10-2007, 13:16 36628 σε απάντηση της 36560

    Απ: Πέρασμα παραμέτρων από javascript function σε server side method

    Ο τρόπος αυτός είναι εντελώς λάθος... Για παράδειγμα το παρακάτω script :

        <script type="text/javascript" language="javascript">
        function foo()
        {
            var aParameter = "Some words";
            if (1=2)
            {
               <% dummy()%>
            }
        }
    </script>

    θα εκτελέσει την server-side function 'dummy()' !!!
    Όπως βλέπεις προγραμματιστικά είναι κάτι εντελώς λάθος...


    Σύνταξη στα 18,
    Στράτευση στα 100.
  •  26-10-2007, 13:40 36630 σε απάντηση της 36628

    Απ: Πέρασμα παραμέτρων από javascript function σε server side method

    Μπορείς να γίνεις λίγο πιο συγκεκριμένος ?
    Πότε θέλεις να εκτελείς από javascript μια server side συνάρτηση ? Πατώντας π.χ. ένα κουμπί ? Αλλάζοντας μια τιμή σε ένα combo ?
    Ένας σωστός γενικός τρόπος είναι με webservices όπως ήδη ειπώθηκε.

    Μια πατέντα αν π.χ. θέλεις να χρησιμοποιήσεις κουμπί είναι:
    Στο κουμπί δηλώνεις
    1. Την server side function (onClick)
    2. Την client side function (onClientClick).

    H server side εκτελείται όταν η client side εκτελεστεί και γυρίσει true.
    Έτσι χρησιμοποιώντας hidden fields τα κάνεις set από την client
    και retrieve από την server.
    Ξαναλέω ότι είναι πατέντα αλλά αποφεύγεις τα Webservices.

    edit:
    Επίσης μπορείς να εκτελέσεις την server side συνάρτηση ενός button από javascript χωρίς να πατήσεις το button
    χρησιμοιώντας την __doPostBack('buttonname', '');

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