Не удается получить значения FormView из ObjectDataSource при обновлении - PullRequest
2 голосов
/ 30 июня 2010

Работая с .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")%>' />

          &nbsp;&nbsp;&nbsp;&nbsp;Middle Name: &nbsp;<asp:TextBox ID="txtMiddleName" runat="server"

            Text='<%# Bind("MiddleName")%>' />

          &nbsp;&nbsp;&nbsp;&nbsp;Last Name: &nbsp;

          <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 указывает, что редактирование является его режимом по умолчанию. Это потенциальный источник моей проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...