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

 

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

tag does not evaluate expression ex: '<%= DataListRoutesForAssignment.ClientID %>' does not work..

Îåêßíçóå áðü ôï ìÝëïò saslanis. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 10-08-2008, 01:05. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-08-2008, 09:01 43995

    tag does not evaluate expression ex: '<%= DataListRoutesForAssignment.ClientID %>' does not work..

    Το πρόβλημα: Έχω ένα button που καλεί μια javascript. Θέλω να πάρει παράμετρο το ClientID ενός άλλου control.

    πχ

    <asp:Button ID="ButtonDeselectAllFromList" runat="server" Text="Αποεπιλογή Όλων"

    OnClick="ButtonDeselectAllFromList_Click"

    OnClientClick="SetContainerCheckBoxStates('<%= DataListRoutesForAssignment.ClientID %>','RowCheckBoxSelect',false)"

    />

    Δεν θέλει να δουλέψει με τίποτα. Ως παράμετρος στην συνάρτηση τελικά περνάει το <%= DataListRoutesForAssignment.ClientID %> σαν string. Η έκφραση δεν γίνεται evaluate.

    Η σελίδα κάνει render και εμφανίζει onclick="SetContainerCheckBoxStates('&lt;%= DataListRoutesForAssignment.ClientID %>', σώνει και ντε το < -> &lt (έχει σημασία;)

    WorkAround

    Το πρόβλημα λύνεται ως εξής: φτιάχνω μια παράμετρο που περνάω την έκφραση και χρησιμοποιώ την παράμετρο. Γιατί όμως τώρα το "<%= DataListRoutesForAssignment.ClientID %>" δουλεύει;

    Λύση

    <script type='text/javascript'>

    var dataListClientID = "<%= DataListRoutesForAssignment.ClientID %>";

    </script>

    <asp:Button ID="ButtonSelectAllFromList" runat="server" Text="Επιλογή Όλων" OnClick="ButtonSelectAllFromList_Click"

    CausesValidation="False"

    OnClientClick="SetContainerCheckBoxStates(dataListClientID,'RowCheckBoxSelect',true)" />

    Καμιά ιδέα για το τι μπορεί να πηγαίνει στραβά;;;;;;
    Ευχαριστώ


    Stefanos Aslanis
    Δημοσίευση στην κατηγορία: ,
  •  10-08-2008, 01:05 44030 σε απάντηση της 43995

    Απ: tag does not evaluate expression ex: '<%= DataListRoutesForAssignment.ClientID %>' does not work..

    Ο τρόπος που προσπαθείς να το υλοποιήσεις δεν σε βοηθάει να τα καταφέρεις. Η τιμή που βάζεις μέσα στο onClientClick, προσπαθεί να γίνει evaluate σαν string για αυτό και σου βγάζει τα αποτελέσματα που σου βγάζει.

    Ένας εύκολος τρόπος, θα ήταν να μην την ορίζεις στο source του control, αλλά π.χ. μέσα στο Page_OnLoad event, με ένα statement του τύπου:

    • ButtonDeselectAllFromList.OnClientClick="SetContainerCheckBoxStates('" + DataListRoutesForAssignment.ClientID + "','RowCheckBoxSelect',false)"

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems