Databinding bidirectionnel dans ASP.NET
-
30-10-2019 - |
Question
Disons que nous avons un objet
class Entity
{
public string ID {get; set;}
public string Name {get; set;}
}
Je veux lier les propriétés à deux zones de texte sur une page quelque chose comme ceci:
<asp:FormView ID="FormView" runat="server">
<ItemTemplate>
<asp:textbox ID="TextId" Text='<%# Bind("ID") %>'/>
<asp:textbox ID="TextId" Text='<%# Bind("Name") %>'/>
</ItemTemplate>
</asp:FormView>
puis écrivez ceci dans le code derrière
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);
}
Et lorsque j'entre des valeurs dans des zones de texte, je m'attends à ce que EntityObject ait ces valeurs dans les propriétés lorsque la page se recharge après le post-dos, mais les propriétés sont toujours nulles.
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow