2

使用 .NET 2.0,我有一个 FormView,其字段绑定到 ObjectDataSource (ODS)。这些字段以正确的值开始——也就是说,当调用 ODS 的 SelectMethod 时,它们来自 Person 对象——但是在进行更改并调用 ODS 的 UpdateMethod 之后,我无法从字段中获取这些新值或任何值从更新的调用堆栈中的任何地方。我的代码如下所示:

    <div id="personInfo"><asp:FormView ID="fvwPerson" runat="server" DataSourceID="srcPerson" DefaultMode="Edit">

    <EditItemTemplate>

          <table border="0" width="100%" style="font-weight:bold">

…<br>

        <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")%>' />

…</p>

        </EditItemTemplate>

    </asp:FormView>

  </div>

…</p>

      <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 都以“失败”开头。我真的以为我在遵循所有正确的例子,我做错了什么?请让我不必再调用 DirectCast(fvwPerson.FindControl("fieldName"), TextBox).Text 38 次!谢谢……</p>

编辑 7/6/10:我可能应该提到我只有用于编辑的项目模板,而不是用于查看的模板(我觉得我不应该复制所有这些控件),并且正如 FormView 标记所示,编辑是它的默认模式。这是我问题的潜在根源吗?

4

0 回答 0