2012-01-24 6 views
0

Je suis en train de valider le côté serveur, mais il semble que cela ne fonctionne pas comme prévu. Ci-dessous un exemple de codeLa validation côté serveur dans l'application asp.net ne fonctionne pas

 //Validation 

    private void validation() 
    { 
     if (txtFName.Text == string.Empty) { Alert("Invalid Name"); return; } 

     if (txtLName.Text == string.Empty) { Alert("Invalid Name"); return; } 
    } 


     // Alert mesage 
    public void Alert(string msg) 
    { 
     ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script 
     type='text/javascript'>alert('" + msg + "');</script>"); 
    } 

Dans mon bouton prochain événement de clic j'appelle cette fonction comme

protected void button_Click(object sender, EventArgs e) 
    { 
     validation(); 
    } 

Étonnamment, même si je ne rentre rien dans le TexBox (signifie zone de texte est vide). .. aucune alerte ne vient. Attendu que, il devrait alerter. Est-ce que quelqu'un peut me signaler ce que je fais mal. Apprécier ton aide.

EDIT:

La chose la plus weired est que, la même amende de travail de code dans d'autres page (s). il alerte bien si les champs sont vides ou si la validation échoue. Je ne sais pas quel est le problème avec cette page.

Pointeur Fe like ... Cette page aspx particulier ... a beaucoup de contrôles utilisateurs et les contrôles ascx page ont un Javascript. Je pourrais être n'importe quel problème

+2

Avez-vous envisagé d'utiliser les contrôles de validation asp.net? Ils vont simplifier cela énormément pour vous. Voir http://msdn.microsoft.com/en-us/library/ie/debza5t0.aspx. En particulier, regardez le RequiredFieldValidator - http://msdn.microsoft.com/en-us/library/5hbw267h(v=vs.80).aspx – dash

+0

Dash ... Je sais, mais pour un certain temps, je ne peux pas les utiliser ... bien pas ma décision ... Je suis juste un membre d'équipage :) – Rahul

+0

Comment ennuyeux! Le simple fait de devoir poster pour vérifier si un champ est vide ou non est une douleur, surtout quand les contrôles sont intégrés dans le framework. Souffrez-vous un point d'arrêt dans la méthode validation() lors du débogage? Voir http://stackoverflow.com/questions/320999/execute-javascript-function-after-asp-net-postback-without-ajax pour d'autres suggestions! – dash

Répondre

0

J'ai juste essayé le code suivant.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    validation(); 
} 

private void validation() 
{ 
    Alert("Invalid Name"); 
} 


    // Alert mesage 
public void Alert(string msg) 
{ 
    ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script type='text/javascript'>alert('" + msg + "');</script>"); 
} 

semble que tout fonctionne correctement. vérifiez s'il y a un problème de paramètres. (Je ne suis pas sûr que je fais juste des essais et des erreurs).

http://bytes.com/topic/asp-net/answers/518330-clientscript-registerstartupscript

0

i vous sussgest d'utiliser Asp.net contrôle de validation, comme validateur Champ obligatoire, Comparer validateur. comme le cadre fera tout pour vous. alors pourquoi vous allez valider par vous-même. ?

dans ASPX

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="InvalidName" ControlToValidate="TextBox1"></asp:RequiredFieldValidator> 

si vous souhaitez afficher toutes vos validation à la boîte de message ou d'un résumé, vous pouvez utiliser résumé contrôle

<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" /> 
0

Même avec la validation Scriptmanager il n'a pas fonctionné ... o, ma solution était ... Je viens de changer la méthode de validation un peu et ça a bien fonctionné ... comme ci-dessous

private bool validation() 
{ 
    if (txtFName.Text == string.Empty) { Alert("Invalid Name"); return false; } 

    if (txtLName.Text == string.Empty) { Alert("Invalid Name"); return false; } 
} 
Questions connexes