Не удается получить значения FormView из ObjectDataSource при обновлении
Работая с.NET 2.0, у меня есть FormView с полями, привязанными к ObjectDataSource (ODS). Эти поля начинаются с правильных значений, то есть они берутся из объекта Person при вызове SelectMethod ODS, но после внесения изменений и вызова UpdateMethod ODS я не могу получить эти новые или любые другие значения из полей из любого места в стеке вызовов обновления. Мой код выглядит так:
<div id="personInfo"><asp:FormView ID="fvwPerson" runat="server" DataSourceID="srcPerson" DefaultMode="Edit">
<EditItemTemplate>
<table border="0" width="100%" style="font-weight:bold">
...
<td align="right">
First Name:
</td>
<td>
<asp:TextBox ID="txtFirstName" runat="server" Text='<%# Bind("FirstName")%>' />
Middle Name: <asp:TextBox ID="txtMiddleName" runat="server"
Text='<%# Bind("MiddleName")%>' />
Last Name:
<asp:TextBox ID="TextBox5" runat="server"
Text='<%# Bind("LastName")%>' />
...
</EditItemTemplate>
</asp:FormView>
</div>
...
<asp:ObjectDataSource ID="srcPerson" runat="server" SelectMethod="GetPersonInfo" UpdateMethod="SavePersonInfo"
TypeName="BLL.Person">
<SelectParameters>
<asp:SessionParameter Name="personID" SessionField="personid" DefaultValue="0" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="firstName" Type="String" Direction="Input" DefaultValue="Fail 1!" />
<asp:Parameter Name="middleName" Type="String" Direction="Input" DefaultValue="Fail 2!" />
<asp:Parameter Name="lastName" Type="String" Direction="Input" DefaultValue="Fail 3!" />
</UpdateParameters>
</asp:ObjectDataSource>
В SavePerson значениями параметров являются "Fail 1!", "Fail 2!" И "Fail 3!" Соответственно. Я также пытался использовать FormParameters, с теми же результатами:
<asp:FormParameter Name="firstName" FormField="txtFirstName" Type="String" Direction="Input" DefaultValue="Fail 1!" />
<asp:FormParameter Name="middleName" FormField="txtMiddleName" Type="String" Direction="Input" DefaultValue="Fail 2!" />
<asp:FormParameter Name="lastName" FormField="txtLastName" Type="String" Direction="Input" DefaultValue="Fail 3!" />
Я также попытался предвосхитить имена полей "fvwPerson." Я также пытался обработать событие обновления для ODS, но все элементы e.InputParameters начинались с "Fail". Я действительно думал, что следую всем правильным примерам, что я делаю не так? Пожалуйста, избавьте меня от необходимости вызывать DirectCast(fvwPerson.FindControl("fieldName"), TextBox). Текст 38 раз! Спасибо…
РЕДАКТИРОВАНИЕ 7/6/10: Я, вероятно, должен был упомянуть, что у меня есть только шаблон элемента для редактирования, а не один для просмотра (я не чувствовал, что мне нужно дублировать все эти элементы управления), и, как указывает тег FormView, отредактируйте это режим по умолчанию. Это потенциальный источник моей проблемы?