2009-04-19 52 views
5

我有一个FormView绑定到一个ObjectDataSource。FormView EditTemplate如何更新ObjectDataSource UpdateParameters中的值?

*的ObjectDataSource定义(它为简单起见省略的部分)*

<asp:ObjectDataSource 
    ID="odsHousehold" 
    runat="server" 
    TypeName="BLL.Households" 
    ConflictDetection="OverwriteChanges" 
    UpdateMethod="UpdateHousehold" 
    > 
    <UpdateParameters> 
     <asp:Parameter Name="sName" Type="String" Direction="Input" /> 
     <asp:Parameter Name="sAddress" Type="String" Direction="Input" DefaultValue="" /> 
     <asp:Parameter Name="sCity" Type="String" Direction="Input" DefaultValue="" /> 
     <asp:Parameter Name="sState" Type="String" Direction="Input" DefaultValue="" /> 
     <asp:Parameter Name="sZip" Type="String" Direction="Input" DefaultValue="" /> 
    </UpdateParameters> 
</asp:ObjectDataSource> 

* FormView的定义(为简单它省略的部分)*

<asp:FormView 
    ID="fvHousehold" 
    runat="server" 
    DataKeyNames="HouseholdID" 
    DataSourceID="odsHousehold" 
    HorizontalAlign = "Left" 
> 
<EditItemTemplate> 
<asp:TextBox ID="txtHouseHoldName" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("HouseholdName") %>'></asp:TextBox> 
<asp:TextBox ID="txtAddress" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("Address") %>'></asp:TextBox> 
<asp:TextBox ID="txtCity" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("City") %>'></asp:TextBox> 
<asp:TextBox ID="txtState" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("State") %>'></asp:TextBox> 
<asp:TextBox ID="txtZip" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("Zip") %>'></asp:TextBox> 
<asp:Button ID="btnUpdateHousehold" runat="server" Text="Update" CommandName="Update" /> 
</EditItemTemplate> 
</asp:FormView> 

I” d想知道:FormView如何知道UpdateParameter在Update按钮时使用哪个EditTemplate文本框填充被点击?
例如,我没有指示FormView中的“txtAddress”填充UpdateParameter“sAddress”,但InputParameters [“sAddress”]包含txtAddress的Text值。它是如何知道这样做的?

任何一位大师能够启发我吗?

太感谢你了,

卡伦

+0

因此,这个代码是否适用于你?你是因为学术上的原因而问“如何”,还是因为它不以你想要的方式约束你? – 2009-05-03 12:59:43

回答

1

也许它只是其中的TextBox控件添加到EditItemTemplate中的顺序?即控件的顺序必须与UpdateParameters的顺序相匹配......

尝试交换txtHouseHoldName和txtAddress的位置,地址是否传递到更新方法的sName参数中?

2

“FormView如何知道UpdateParameter在单击Update按钮时使用哪个EditTemplate TextBox填充?”

我相信最简单的答案是:它知道是因为您在TextBox控件中放置了Bind语句。例如。 txtAddress具有“绑定(”地址“)”,所以当更新被调用时,它在txtAddress和参数“地址”之间有连接

+0

我相信这是正确的。真正酷的是当你在objDS上设置DataTypeName属性,然后由于这些绑定语句,为你创建了一个正确分配属性的对象,并准备传递给指定的updateMethod或insertMethod。很酷。 – Hcabnettek 2009-08-11 06:42:40

相关问题