Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    72

    includere codice javascript in pagina asp net

    Vorrei sapere se in net 2, sia anncora possibile includere script javascript.

    Chiedo questo perchè ho una applicazione costituita da master page e pagine contenute ma se inserisco script javascipt nelle pagine contenuto sembrano come ignorati. PERCHE'
    Lo script che avevo inserito nella pagina contenuto era uno script per il controllo dei moduli inseriti su un form. Funzionava bene quando la pagina era nel calssico asp e volevo riutilizzarlo in questa nuova veste net 2.
    grazie a tutti

  2. #2
    Beh, certo che si può. Non c'entra che linguaggio lato server tu stia usando, per poter essere navigata la pagina viene sempre tradotta in markup/linguaggi comprensibili al browser, quindi html/xhtml, javascript, ecc.

    Il problema che (credo) tu stia riscontrando riguarda il fatto che asp.net rinomina a runtime gli ID dei controlli lato server, ad esempio se scrivi

    codice:
    <asp:Label runat="server" ID="Label1"></asp:Label>
    Ti ritrovi, a pagina in esecuzione con

    codice:
    <span id="ctl00_ContentPlaceHolder1_Label1"></span>
    Se il tuo problema è questo, la soluzione è abbastanza semplice. Nelle tue funzioni javascript, non devi mai fare riferimento esplicito agli ID dei controlli. Se ad esempio hai una funzione che fa:

    codice:
    function test()
    {
      var x = document.getElementById("Label1");
    }
    dovrai cambiarla con

    codice:
    function test(id)
    {
      var x = document.getElementById(id);
    }
    Ora per passare l'id corretto alla funzione. Supponiamo che tu voglia eseguire questa funzione sul click di un link. Sarà sufficiente fare:

    codice:
    <asp:HyperLink runat="server" ID="HyperLink1" NavigateUrl="#" />
    Poi dal codebehind, nel Page_Load, aggiungi

    codice:
    HyperLink1.Attributes.Add("onclick", "test('" + Label1.ID + "')");
    In questo modo l'ID passato al javascript è quello corretto, perchè gia elaborato dal motore di Asp.net

    Spero di esserti stato di aiuto, in caso contrario, chiedi pure

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    72
    GRAZIE, sei stato molto chiaro.
    Si credo che il problema sia quello a cui accennavi
    domattina provo a mettere in pratica quanto i hai detto

    grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    72
    correzine,
    scusami ripensandoci, i moduli del form che ho usato mon sono degli asp control ma classiche text box htm, si insomma i campi modulo li ho creati non da menu strumenti "standard", ma dalla sezione html. Volevo riusare pari pari il form e script già realizzati in precedenza in asp.
    Alla luce i cio il problema del rename automatico degli id dei control, riguarda solo gli asp control o anche le text box create come htm traziozionale del tipo

    <input type="text" name="f_user" size="20">

  5. #5
    Scusa se non ti avevo più risposto..

    No, i controlli standard non vengono rinominati, solo quelli lato server.

    Non capisco dunque dove stia il tuo problema. L'unica cosa che ho notato è che l'input che mi hai scritto non ha la proprietà "id" e quindi il javascript getElementById() non può ovviamente funzionare. Prova a mettere un id (univoco ovviamente, 2 controlli nella stessa pagina non possono avere mai lo stesso id) all'input e riprova.

    Fammi sapere.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.