2010-01-29 4 views
0

Matin tous.Implémentation de javascript dans le code C# derrière

J'ai le javascript suivant dans mon code devant

 <script type="text/javascript" src="~/VDSReporting/jquery.js"></script> <script type="text/javascript"> 

    function ShowImage() { 
     document.getElementById('tbxProdAC') 
     .style.backgroundImage = 'url(/images/vds/progress.gif)'; 

     document.getElementById('tbxProdAC') 
        .style.backgroundRepeat = 'no-repeat'; 

     document.getElementById('tbxProdAC') 
        .style.backgroundPosition = 'right'; 
    } 

    function HideImage() { 
     document.getElementById('tbxProdAC') 
         .style.backgroundImage = 'none'; 
    } 

</script> 

Comment puis-je aller de « conversion » et ce ne l'avoir présent dans C# code derrière?

S'il vous plaît excusez mon ignorance, je suis complètement hors de ma profondeur ici!

+0

pourquoi voudriez-vous que ce code en C#? – Natrium

+0

Fondamentalement, le script est actuellement détenu dans un espace réservé de contenu - une fois construit, les ID de contrôle sont modifiés pour prendre en compte les espaces réservés de contenu et, par conséquent, les contrôles ne sont pas trouvés en me donnant des erreurs. Ma pensée était de placer cela dans le code derrière et d'enregistrer les contrôles avec le clientID, c'est-à-dire tbxProdAC.ClientID - alors j'espère que cela réglerait tout!?! –

Répondre

5

S'il s'agit d'une image de progression que vous affichez (semble-t-il à partir du nom de l'image), alors pourquoi voudriez-vous faire ce côté serveur? Cela va en quelque sorte vaincre le but entier d'une image de progrès. Cela semble être du côté du client, alors gardez-le là.

Mise à jour

Vous n'avez pas besoin d'utiliser le code sous-jacent pour rendre le script juste pour obtenir l'ID client de. Vous pouvez faire quelque chose comme ceci:

function ShowImage() { 
    document.getElementById('<%=tbxProdAC.ClientID%>') 
    .style.backgroundImage = 'url(/images/vds/progress.gif)'; 

    document.getElementById('<%=tbxProdAC.ClientID%>') 
       .style.backgroundRepeat = 'no-repeat'; 

    document.getElementById('<%=tbxProdAC.ClientID%>') 
       .style.backgroundPosition = 'right'; 
} 

function HideImage() { 
    document.getElementById('<%=tbxProdAC.ClientID%>') 
        .style.backgroundImage = 'none'; 
} 

J'utilise ici <%=tbxProdAC.ClientID%> pour obtenir l'ID du contrôle. C'est beaucoup plus lisible, puis en utilisant le code derrière pour rendre le script.

+0

Bonjour Mattias - voir ci-dessus pour mon petit problème et ma réflexion derrière. Je suis complètement nouveau à tout cela, essayant de trouver des solutions aux problèmes que je rencontre. Essentiellement ce javascript échoue maintenant qu'il est placé dans un espace réservé de contenu. –

+0

Voir la réponse mise à jour. –

+0

Brillant - merci Mattias, votre aide est grandement appréciée. –

0

J'ai besoin javascript pour être exécuté à partir du côté serveur et cela a fonctionné pour moi -

if (!this.ClientScript.IsStartupScriptRegistered("StartDown")) 
{ 
    string scriptString = @"alert(""some javascript"");location.href='MyPage.aspx';"; 
    this.ClientScript.RegisterStartupScript(Page.GetType(), "StartDown", scriptString, true); 
} 

Hope this helps ..

Questions connexes