2010-01-19 3 views

Répondre

0

Vous pouvez appeler une fonction javascript à partir du code côté serveur en utilisant la méthode Page.RegisterClientScriptBlock] 1

comme

String scriptString = "<script type='text/javascript'>MakeDivVisible();</script>"; 
this.RegisterClientScriptBlock("clientScript", scriptString); 

puis dans la fonction javascript vous pouvez modifier l'affichage de la div être bloc comme

document.getElementById("divId").style.display = 'block'; 

ou si vous donnez l'attribut div runat = « server » alors vous pouvez accéder à la div des s code côté erver et changer son affichage pour bloquer

divId.Style["display"] = "block"; 
+0

Je veux seulement le faire si la validation échoue. Et seulement sur soumettre. Et sur le client. – cerhart

+0

Ensuite, vous pouvez écrire le code javascript dans le client lui-même à l'intérieur de la fonction de soumission et renvoyer false comme dernière étape. – rahul

+0

Le problème est qu'il n'y a pas de fonction de soumission. J'utilise les contrôles de validation asp.net. – cerhart

0

Vous devez effectuer la validation sur le client et sur le serveur, car vous ne pouvez pas garantir que le client a activé le JavaScript. Ce qui suit montre les étapes pour accomplir ceci du côté du client, car l'implémentation sur le côté du serveur devrait être triviale.

Compte tenu d'un simple div comme les suivantes:

<div id="divErrors" runat="server" style="display: none;"> 
    This should only appear when validation fails. 
</div> 

Ajouter le code JavaScript suivant à votre page:

<script language="javascript" type="text/javascript"> 
    function showErrors() { 
     if (!Page_IsValid) { 
      document.getElementById('divErrors').style.display = 'block'; 
     } else { 
      document.getElementById('divErrors').style.display = 'none'; 
     } 
    } 
</script> 

Enfin, enregistrer un script submit qui appelle cette nouvelle fonction ShowErrors (dans le Événement Page_Load):

If Not Page.IsPostBack() Then 
    Dim scriptName As String = "OnSubmitScript" 
    Dim scriptType As Type = Me.GetType() 
    Dim script As ClientScriptManager = Page.ClientScript 
    If Not script.IsOnSubmitStatementRegistered(scriptType, scriptName) Then 
     script.RegisterOnSubmitStatement(scriptType, _ 
         scriptName, "showErrors();") 
    End If 
End If 
Questions connexes