下拉列表ID更改名称

时间:2011-11-30 10:32:56

标签: c# asp.net drop-down-menu

标题不好。我不知道在标题中写得更好。但它来了。

我正在制作一个拥有所有不同位置的足球场。在每个位置,我都有一个下拉列表,显示团队中的玩家。

我制作了一些下拉列表,然后意识到我做错了。

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时,如何获取ID为ddlGoalKeeper的下拉列表:

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

任何想法或帮助??

1 个答案:

答案 0 :(得分:1)

我认为这就是你所需要的。给出您可以使用的任何控件的ID

FindControl

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

获取控制树中的任何控件。您需要在包含控件的命名容器上使用它,即

Panel.FindControl(controlID)

或使用特定Jeff Atwood的递归版本

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

或者 - 构建一个Dictionary集合,将所有下拉列表映射到ID并为此获取它们。使用更多设置可以提高效率