Τρίκλινο Αποσπάσματα; Πώς μπορώ να οριοθετούν ένα databound Javascript παράμετρο συμβολοσειράς σε ASP.NET;

ψήφοι
30

Πώς μπορώ να οριοθετούν μια παράμετρο databound κορδόνι Javascript σε μια άγκυρα OnClickπερίπτωση;

  • Έχω μια ετικέτα αγκύρωσης σε ένα στοιχείο ελέγχου ASP.NET Repeater.
  • Η OnClickεκδήλωση της άγκυρας περιέχει μια κλήση σε μια λειτουργία Javascript.
  • Η λειτουργία Javascript παίρνει ένα string για την παράμετρο εισόδου.
  • Η παράμετρος συμβολοσειρά έχει συμπληρωθεί με μία τιμή databound από τον επαναλήπτη.

Χρειάζομαι τα «διπλά εισαγωγικά» για το Container.DataItem.
Χρειάζομαι τα «μονά εισαγωγικά» για το OnClick.

Και εξακολουθώ να χρειάζομαι ένα ακόμη διαχωριστικό (τριπλά εισαγωγικά;) για την παράμετρο συμβολοσειράς εισόδου της κλήσης λειτουργία Javascript.

Επειδή δεν μπορώ να χρησιμοποιήσω «μονά εισαγωγικά» και πάλι, πώς μπορώ να εξασφαλίσει τη λειτουργία Javascript γνωρίζει η παράμετρος εισόδου είναι ένα string και όχι ακέραιος;

Χωρίς επιπλέον εισαγωγικά γύρω από την παράμετρο συμβολοσειράς εισόδου, η λειτουργία Javascript νομίζει ότι είμαι περνώντας σε έναν ακέραιο.

Στην υγειά μας εκ των προτέρων για οποιαδήποτε γνώση που μπορεί να μειωθεί.

Η άγκυρα:

<a id=aShowHide onclick='ToggleDisplay(<%# DataBinder.Eval(Container.DataItem, JobCode) %>);' >Show/Hide</a>    

και εδώ είναι το Javascript:

<script language=JavaScript type=text/javascript>
/* Shows/Hides the Jobs Div */
function ToggleDisplay(jobCode)
{
    /* Each div has its ID set dynamically ('d' plus the JobCode) */
    var elem = document.getElementById('d' + jobCode);

    if (elem) 
    {
        if (elem.style.display != 'block') 
        {
            elem.style.display = 'block';
            elem.style.visibility = 'visible';
        } 
        else
        {
            elem.style.display = 'none';
            elem.style.visibility = 'hidden';
        }
    }
}
</script>
Δημοσιεύθηκε 05/08/2008 στις 05:05
πηγή χρήστη
Σε άλλες γλώσσες...                            


5 απαντήσεις

ψήφοι
20

Πρόσφατα είχα παρόμοιο πρόβλημα και ο μόνος τρόπος για να λυθεί ήταν να χρησιμοποιήσει απλό παλιό κώδικες HTML για μονό ( &#39;) και διπλά εισαγωγικά ( &#34;).

Ο πηγαίος κώδικας ήταν χάλια, φυσικά, αλλά λειτούργησε.

Προσπαθήστε

<a id="aShowHide" onclick='ToggleDisplay(&#34;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#34;);'>Show/Hide</a>

ή

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a>
Απαντήθηκε 05/08/2008 στις 05:28
πηγή χρήστη

ψήφοι
3
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '

Χρήση όπως παραπάνω.

Απαντήθηκε 28/04/2009 στις 16:11
πηγή χρήστη

ψήφοι
0

Περνώντας μεταβλητή να λειτουργούν χωρίς μόνη προσφορά ή διπλά εισαγωγικά

<html>
    <head>
    </head>
    <body>
        <script language="javascript">
        function hello(id, bu)
        {
            alert(id+ bu);
        }
        </script>
        <a href ="javascript:
            var x = &#34;12&#34;;
            var y = &#34;fmo&#34;;
            hello(x,y)">test</a>
    </body>
</html>
Απαντήθηκε 12/03/2009 στις 02:12
πηγή χρήστη

ψήφοι
0

Δοκιμάστε να βάλετε το επιπλέον κείμενο μέσα στο μπλοκ script server-side και συνένωση.

onclick='<%# "ToggleDisplay(""" &  DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'

Επεξεργασία: Είμαι αρκετά βέβαιος ότι θα μπορούσατε να χρησιμοποιήσετε απλά διπλά εισαγωγικά έξω από το μπλοκ δέσμης ενεργειών, καθώς και.

Απαντήθηκε 05/08/2008 στις 05:19
πηγή χρήστη

ψήφοι
0

Χωρίς επιπλέον εισαγωγικά γύρω από την παράμετρο συμβολοσειράς εισόδου, η λειτουργία Javascript νομίζει ότι είμαι περνώντας σε έναν ακέραιο.

Μπορείτε να κάνετε κάποια υποτυπώδη λειτουργία κορδόνι για να αναγκάσει την Javascript σε αλλαγή της σε μια σειρά; Σαν

value = value + ""
Απαντήθηκε 05/08/2008 στις 05:08
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more