2009-04-19 113 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

相關問題