详细视图模板字段映射到 ObjectDataSource?

Detailsview templatefield mapping to ObjectDataSource?

我需要帮助来了解将 TemplateFields 映射或关联到 ObjectDataSource 的正确方法。我在这里只显示一个(许多)模板定义:

    <asp:TemplateField HeaderText="First Name" SortExpression="cFIRSTNAME">
    <ItemTemplate>
        <asp:Label ID="lblValFirstName" runat="server" Text='<%# Eval("cFIRSTNAME") %>' style="font-weight: bold;" ></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
        <asp:TextBox ID="txtFirstName" runat="server" Text='<%# Bind("cFIRSTNAME") %>' MaxLength="20"></asp:TextBox>
    </EditItemTemplate>
    <InsertItemTemplate>
        <asp:TextBox ID="txtFirstName" runat="server" Text='<%# Bind("cFIRSTNAME") %>' MaxLength="20"></asp:TextBox>
    </InsertItemTemplate>
   </asp:TemplateField>

ObjectDataSource 和更新参数为:

    <asp:ObjectDataSource ID="ODS_LOGIN_DETAILS" runat="server" 
    SelectMethod="GetLOGINSbyLoginID" 
    TypeName="bllLOGINS" 
    DeleteMethod="DeleteFromDetailsView" 
    InsertMethod="InsertFromDetailsView" 
    UpdateMethod="UpdateFromDetailsView" OldValuesParameterFormatString="original_{0}"> <UpdateParameters>
  <asp:Parameter Name="p_UID_LOGIN" Type="Int32" />
  <asp:Parameter Name="p_UID_CONTACT" Type="Int32" />
  <asp:Parameter Name="p_UID_USER_TYPE" Type="Int32" />
  <asp:Parameter Name="p_TXT_USERNAME" Type="String" />
  <asp:Parameter Name="p_TXT_PASSWORD" Type="String" />
  <asp:Parameter Name="p_BOOL_IS_ACTIVE" Type="Boolean" />
  <asp:Parameter Name="p_DT_END" Type="DateTime" />
  <asp:Parameter Name="p_FirstName" Type="String" />
  <asp:Parameter Name="p_LastName" Type="String" />
  <asp:Parameter Name="p_CONTACTTITLE" Type="String" />
  <asp:Parameter Name="p_TXT_PHONE" Type="String" />
  <asp:Parameter Name="p_CONTACT_EMAIL" Type="String" /> </UpdateParameters>

我不清楚的是如何从模板字段文本框 (txtFirstName) 映射到 UpdateParameter "p_FirstName"?

在我正在使用的现有代码中,我看到 ObjectDataSource_Updating() 事件执行一系列 DVW.FindControl() 值 assigned/set 到

e.InputParameter("param-name") = text-box-value

有问题吗?

这是在 ObjectDataSource_Updating() 事件中还是在 DetailsView_Updtaing() 事件中完成的 - 或者 - 通过声明 aspx 代码?

或者怎么样?

最好的方法是什么?

命名文本框 ID 和参数名称会简化代码吗?

我假设提供的解决方案是 "similar" 或与 SqlDataSource 相同——请确认?

提前致谢...约翰

我有一个类似的问题,并且不确定如何将文本框映射到参数,因为在执行 SQL 跟踪时传递了 NULL 参数值。最后,我将参数名称设置为与有效的 Text 属性绑定中的值相匹配。

<UpdateParameters> <asp:Parameter Name="my_field" Type="String" Direction="Input" /> ...

<asp:TextBox Text='<%# Bind("my_field") %>'...