質問

オブジェクトがあるとしましょう

class Entity
{
    public string ID {get; set;}
    public string Name {get; set;}
}

このようなページ上の2つのテキストボックスにプロパティをバインドしたい:

<asp:FormView ID="FormView" runat="server">
  <ItemTemplate>
    <asp:textbox ID="TextId" Text='<%# Bind("ID") %>'/>
    <asp:textbox ID="TextId" Text='<%# Bind("Name") %>'/>
  </ItemTemplate>
</asp:FormView>

そして、これを背後にコードで書きます

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);
}

また、テキストボックスに値を入力すると、ページがポストバック後にリロードされると、エンティティオブジェクトがこれらの値をプロパティに持つことが期待されますが、プロパティは常にnullです。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top