2009-04-19 14 views
5

Bir ObjectDataSource'a bağlı bir FormView var.FormView EditTemplate, ObjectDataSource UpdateParameters'ın başlık altındaki altındaki değerleri nasıl güncelleştirir?

* ObjectDataSource tanımı (basitlik açısından bunun ihmal kısmı) *

<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 tanımı (basitlik açısından bunun ihmal kısmı) *

<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' Bilmeyi sever: FormView, UpdateParameter'ın Update butonu ile hangi EditTemplate TextBox ile doldurulacağını bilir tıklandı mı?
Örneğin, UpdateParameter "sAddress" i doldurmak için FormView'de "txtAddress" talimatı vermedim, ancak InputParameters ["sAddress"] txtAddress öğesinin Text değerini içeriyor. Bunu yapmayı nereden biliyor?

Herhangi bir guru beni aydınlatır mı?

Belki de TextBox denetimleri EditItemTemplate ilave edilme sırası basitçe

Cullen

+0

arasında bir bağlantı vardır. Bu kod sizin için çalışıyor mu, çalışmıyor mu? Sadece akademik nedenlerden dolayı "nasıl" diye soruyorsunuz, ya da sizin için istediğiniz şekilde bağlayıcı olmadığından mı? –

cevap

1

, Çok teşekkür ederim? kontrollerin sırasının GüncellemeParametreleri sırasına uygun olması gerekir ...

txtHouseHoldName ve txtAddress konumunu değiştirmeyi deneyin, adres güncelleme yönteminizin sName parametresine geçirilir mi?

2

"FormView, UpdateParameter'ın Güncelleştirme düğmesi tıklatıldığında hangi EditTemplate TextBox ile doldurulacağını nasıl biliyor?"

Basit bir yanıt olduğuna inanıyorum: TextBox denetimlerine koyduğunuz Bind deyimleri nedeniyle bunu biliyor. Örneğin. txtAddress, "Bind (" Adres ") 'e sahiptir, böylece güncelleme çağrıldığında, txtAddress ile" Adres "parametresi" Adres "

+0

Bunun doğru olduğuna inanıyorum. Gerçekten harika olan şey, objDS'de DataTypeName özelliğini ayarladığınızda, bu bağlama ifadeleri nedeniyle, sizin için doğru atanan özelliklere sahip bir nesne oluşturulur ve belirtilen updateMethod veya insertMethod öğesine geçmek için hazırdır. Oldukça havalı. – Hcabnettek

İlgili konular