2011-11-30 92 views
1

标题不好。我不知道如何在标题中写更好的东西。但是它来了。Dropdownlist ID更改名称

我正在做一个足球场,所有不同的位置。在每个位置我都有一个显示球队球员的下拉列表。

我做了下拉列表的一部分,后来意识到我做错了。

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 ... 

它应该只显示该位置上有任何球员的位置。这一切都很好......但我有28个职位,并有28个上述尝试/抓住的东西。

我想缩小它,只做一个。

如果我让所有的下拉列表与保存在我的数据库中的位置名称相同,我应该只能做一个。所以我试过了:

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... 

它不起作用。我如何获得的下拉列表中保持与ID ddlGoalKeeper当我创建的ID为:

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

任何意见或帮助?

+0

你可以发布你的html代码,你在哪里创建下拉列表,以及你想要读取的下拉列表如上所示 – Rajesh

+0

这里是它: Oedum

回答

1

我认为这是你需要的。鉴于任何控件的ID,您可以使用

FindControl 

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

获得在控制树中的任何控制。你西港岛线需要使用一个包含即

Panel.FindControl(controlID) 

控制命名容器上或使用由特定的杰夫·阿特伍德wriiten递归版本

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

或者 - 构造一个字典集合将全部您的下拉列表映射到ID并为此获取它们。可以更有效的更多的设置

+0

超...感谢队友 – Oedum