详细视图模板字段映射到 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") %>'...
我需要帮助来了解将 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") %>'...