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
scroll top