2009-11-23 8 views
1

J'ai la configuration suivante, une zone de texte ddl (ddlProd, radBuyer) et autocomplete (txtProdAC, radProd) qui, une fois remplies et leurs boutons radio respectifs sont sélectionnés, une vue de grille des données est produit ... des trucs adorables.Problème de séquence de commande If/else

protected void btSearch_Click(object sender, EventArgs e) 
{ 
    lqPackWeights.WhereParameters.Clear(); 
    ControlParameter cp = new ControlParameter(); 
    cp.Type = TypeCode.String; 

    if (radBuyer.Checked) 
    { 
     cp.ControlID = "ddlProd"; 
     cp.PropertyName = "SelectedValue"; 
    } 

    if (radProd.Checked) 
    { 
     cp.ControlID = "tbxProdAC"; 
     cp.PropertyName = "Text"; 
    } 
    else  
    { 
     cp.ControlID = "lbRadMiss"; 
     cp.PropertyName = "Text"; 
     lbRadMiss.Text = "Please check appropriate radio button before you attempt a search"; 
    } 

    cp.Name = "IDDesc"; 
    lqPackWeights.WhereParameters.Add(cp); 
    GridView1.DataSourceID = "lqPackWeights"; 
    GridView1.DataBind();   

} 

Je coincé dans la section else de telle sorte que si un utilisateur cliquez sur le bouton Rechercher sans bouton radio en cours de vérification, une étiquette apparaît et disant: « S'il vous plaît vérifier ... etc »

Cela fonctionne bien mais j'ai un léger problème. Si un utilisateur produit cette validation (l'autre), il ou elle devrait alors naturellement cliquer sur le bouton radio approprié, puis cliquer de nouveau sur Rechercher. Cependant, lorsque ce processus est suivi, mon code semble ignorer son travail et ne sélectionne ni la valeur sélectionnée pour le ddl ni le texte du tbxProdAC. L'étiquette else reste et la vue grille reste vide.

Est-ce que quelqu'un peut me diriger dans cette direction?

Répondre

1

vous voulez probablement

else if (radProd.Checked) 

(au lieu de simplement le vide si)

+0

je vous !!!! amour sanglant – MrDean

+0

Cela m'a conduit fâcheux ... J'ai essayé le else si ailleurs (excusez le pun0 mais cela n'a pas fonctionné.Merci beaucoup. – MrDean

1
else  
{ 
    cp.ControlID = "lbRadMiss"; 
    cp.PropertyName = "Text"; 
    lbRadMiss.Text = "Please check appropriate radio button before you attempt a search"; 


    ///Include this line 
    return; 

} 
+0

Hmm, il veut sans doute à la fois le retour et l'autre si le radprod.checked – McKay

1

Voulez-vous les éléments suivants à la place?

if (radBuyer.Checked) 
{ 
    cp.ControlID = "ddlProd"; 
    cp.PropertyName = "SelectedValue"; 
} 

else if (radProd.Checked) 
{ 
    cp.ControlID = "tbxProdAC"; 
    cp.PropertyName = "Text"; 
} 

else  
{ 
    cp.ControlID = "lbRadMiss"; 
    cp.PropertyName = "Text"; 
    lbRadMiss.Text = "Please check appropriate radio button before you attempt a search"; 
} 
Questions connexes