2011-11-30 2 views
1

Le titre n'est pas bon. Je ne sais pas comment mieux écrire dans le titre. Mais ici ça vient. Je fais un terrain de soccer avec toutes les différentes positions. Sur chaque position, j'ai une liste déroulante qui montre les joueurs de l'équipe.ID de liste déroulante nom de modification

J'ai fait une partie des listes déroulantes et je me suis rendu compte que je me trompais.

try 
{ 
    int pos = list[i].positionsID; 

    if (pos == 1) 
    { 
      ddlGoal.Visible = true; 
      lblGoal.Visible = true; 

      ddlGoal.DataSource = list1; 
      ddlGoal.DataValueField = "id"; 
      ddlGoal.DataTextField = "name"; 
      ddlGoal.DataBind(); 
     } 
} catch ... 

Il devrait seulement montrer la position de tous les joueurs sur cette position. Tout fonctionne bien ... mais j'ai 28 positions, et là pour 28 de ce qui précède essayer/attraper des choses.

Je veux réduire l'échelle, en n'en faisant qu'un.

Si je laisse toutes les listes déroulantes avoir le même nom que les positions enregistrées sur ma base de données je devrais être en mesure de faire un seul. Donc j'ai essayé cela:

try 
{ 
    int pos = list[i].positionsID; 

    if (pos != 0) 
    { 
      string ddl = "ddl" + list3[i].positionsNavn.ToString(); 
      ddl.Visible = true; 
      lblGoal.Visible = true;  
      ddlGoal.DataSource = list1; 
      ddlGoal.DataValueField = "id"; 
      ddlGoal.DataTextField = "name"; 
      ddlGoal.DataBind(); 
     } 
} catch... 

Cela ne fonctionne pas. Comment puis-je mettre la main sur le dropdownlist avec ID ddlGoalKeeper quand je crée l'ID comme:

string ddl = "ddl" + list3[i].positionsNavn.ToString(); 

Toutes les idées ou aider ??

+0

Pouvez-vous publier votre code html sur l'endroit où vous créez la liste déroulante et aussi où vous voulez lire la liste déroulante comme indiqué ci-dessus – Rajesh

+0

ici, il est: Oedum

Répondre

1

Je pense que c'est ce dont vous avez besoin. Compte tenu de l'ID de tout contrôle, vous pouvez utiliser

FindControl 

http://msdn.microsoft.com/en-us/library/system.web.ui.control.findcontrol.aspx

pour obtenir un contrôle dans l'arborescence de contrôle. Vous wil besoin de l'utiliser sur le conteneur de dénomination qui contient le contrôle-à-dire

Panel.FindControl(controlID) 

ou utiliser la version récursive wriiten par un certain Jeff Atwood

http://www.codinghorror.com/blog/2005/06/recursive-pagefindcontrol.html

Alternativement - construire une collection Dictionnaire seront tous vos listes déroulantes mappées aux identifiants et les obtenir pour cela. Pourrait être plus efficace avec plus de configuration

+0

Super ... merci mon pote – Oedum

Questions connexes