У меня есть элемент управления ascx внутри FormView. Я бы хотел использовать синтаксис Bind внутри ascx. Вот моя страница:
<asp:ObjectDataSource runat="server" ID="ods" TypeName="MyDS" SelectMethod="Get" UpdateMethod="Update" DataObjectTypeName="Ent">
</asp:ObjectDataSource>
<asp:FormView runat="server" DefaultMode="Edit" ID="fv1" DataSourceID="ods">
<EditItemTemplate>
<uc1:WebUserControl ID="WebUserControl1" runat="server" />
<asp:Button runat="server" CommandName="Update" Text="Update"/>
</EditItemTemplate>
</asp:FormView>
Вот WebUserControl.ascx:
<asp:TextBox ID="txt1" runat="server" Text='<%# Bind("Name") %>' />
При выборе значений в TextBox все работает нормально. Bind заполняет текстовое поле ожидаемым значением. Но при нажатии кнопки "Обновить" метод Update источника ObjectDataSource получает экземпляр Ent с нулевым значением вместо Name, в то время как ожидается введенный текст. Просто для теста я поместил текстовое поле в .aspx, и все работает нормально.
Наконец, я декомпилировал с помощью рефлектора FormView, где ExtractRowValues выглядит неудачно, поскольку итерации выполняются только по прямым дочерним элементам. Кто-нибудь знает, как работать с дочерними привязками?