Databinding bidirezionale in ASP.NET
-
30-10-2019 - |
Domanda
Supponiamo che abbiamo un oggetto
class Entity
{
public string ID {get; set;}
public string Name {get; set;}
}
Voglio legare le proprietà a due caselle di testo in una pagina qualcosa del genere:
<asp:FormView ID="FormView" runat="server">
<ItemTemplate>
<asp:textbox ID="TextId" Text='<%# Bind("ID") %>'/>
<asp:textbox ID="TextId" Text='<%# Bind("Name") %>'/>
</ItemTemplate>
</asp:FormView>
e poi scrivi questo in codice dietro
public EntityObject
{
get { return ViewState["Entity"] as Entity; }
set { ViewState["Entity"] = value; }
}
protected override void OnInit(EventArgs e)
{
if (EntityObject== null)
EntityObject= new EntityObject();
FormView.DataSource = new[] { EntityObject };
FormView.DataBind();
base.OnInit(e);
}
E quando inserisco i valori nelle caselle di testo, mi aspetto che EntityObject abbia questi valori nelle proprietà quando la pagina si ricarica dopo il postback, ma le proprietà sono sempre nulle.
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow