Похоже, что эта функциональность задуманна, хотя это не совсем подтверждено.
http://weblogs.asp.net/rajbk/archive/2009/08/03/formview-binding-gotcha.aspx
При использовании объекта FormView, если у вас есть вложенный элемент управления, двусторонняя привязка данных не будет работать должным образом. Вы можете получить доступ к элементам управления в коде и получить данные, но просто не будет автоматически обновлять значение в бэкэнде вашего уровня бизнес-логики (BLL), как это должно быть.
К счастью, есть обходной путь. Чтобы заставить его работать, нужно создать событие для ItemUpdating. Он будет иметь такую подпись:
protected void frmProfile_ItemUpdating(object sender, FormViewUpdateEventArgs e)
Это дает вам доступ к FormViewUpdateEventArgs, который, в свою очередь, позволяет вам вносить изменения в значения ObjectDataSource, пока они находятся в полете и до того, как они попадут в ваш код BLL, следующим образом:
protected void frmProfile_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
if (frmProfile.FindControl("iPrimaryGroupDropDownList") != null)
{
DropDownList iPrimaryGroupDropDownList = ((DropDownList)frmProfile.FindControl("iPrimaryGroupDropDownList"));
e.NewValues["iPrimaryGroup"] = iPrimaryGroupDropDownList.Text;
}
}