Ого, ты делаешь этот путь более сложным, чем нужно. Не делайте этого на ItemDataBound, делайте это на свойстве DataBinding элементов управления.
В раскрывающемся списке определите событие привязки данных:
<asp:DropDownList runat="server" ID="ddlYourDDL" OnDataBinding="ddlYourDDL_DataBinding">
Затем реализуйте событие OnDataBinding:
protected void ddlYourDDL_DataBinding(object sender, System.EventArgs e)
{
DropDownList ddl = (DropDownList)(sender);
for (int i = 1; i < 6; i++)
{
ddl.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
// Now that the items are all there, set the selected property
ddl.SelectedValue = Eval("lvl").ToString();
}
Вы должны попытаться выполнить привязку данных на уровне управления вместо того, чтобы искать что-то, и ваша сетка должна знать, что в ней содержится. Каждый элемент управления может заботиться о себе;)
Я не согласен с тем ответом, который был дан в вашем предыдущем связанном вопросе, чтобы использовать событие ItemBound. Это событие следует использовать на уровне элемента, когда что-то должно повлиять на более чем один элемент управления.
Редактировать: Я также добавил эту информацию к вашему другому вопросу, поэтому, если она будет найдена в будущем, другие не будут использовать событие ItemBound для этой цели.