标题不好。我不知道在标题中写得更好。但它来了。
我正在制作一个拥有所有不同位置的足球场。在每个位置,我都有一个下拉列表,显示团队中的玩家。
我制作了一些下拉列表,然后意识到我做错了。
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();
任何想法或帮助??
答案 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并为此获取它们。使用更多设置可以提高效率