Отвечая на мою собственную тему ... Я получил кое-что от форума asp.net и решил выложить решение здесь: Воспроизведение объяснения, которое мне помогло:
Надеюсь, это прояснит некоторые вопросы для других пользователей, которые могут столкнуться с той же проблемой.
Лучший,
JY
Blockquote
Привет ДЖИ,
Короткий ответ: при компиляции оператора Bind существуют некоторые ограничения на извлечение значений для вставки / обновления. Если элементы управления в FormView находятся внутри другого контейнера именования (TabContainer и TabPanel являются контейнерами именования), то компилятор не может решить, как извлечь значение из TextBox. У меня есть более подробное обсуждение этого в моем блоге на http://www.aarongoldenthal.com/post/2009/03/15/ASPNET-Databinding-Bind()-Method-Dissected.aspx.
Чтобы обойти это, вам нужно извлечь значения вручную, например:
защищенный void FormView1_ItemUpdating (отправитель объекта, FormViewUpdateEventArgs e)
{
// Получить ссылки на элементы управления
TextBox LastNameTextBox = FormView1.FindControl ("TabContainer1"). FindControl ("TabPanel1"). FindControl ("LastNameTextBox") как TextBox;
// Set update parameters in datasource
ObjectDataSource1.UpdateParameters["LastName"].DefaultValue = LastNameTextBox.Text;
}
Так как FindControl выполняет поиск только в текущем контейнере именования, вам нужно просмотреть все контейнеры имен (FormView, TabContainer и TabPanel), чтобы перейти к TextBox.
Надеюсь, это поможет.
Аарон
Blockquote