Two way databinding in ASP.NET

后端 未结 5 1084
离开以前
离开以前 2021-01-18 14:29

Let say that we have an object

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

I want to bind properti

5条回答
  •  一个人的身影
    2021-01-18 15:14

    Sadly to say that, but ASP.NET does not support two-way binding to .net objects... instead you can use something like "manual binding" on every post back (here AddIncomeSources is RepeaterControl)

    public List AdditionalIncomeList 
    {
        get { return ViewState["AdditionalIncome"] as List; }
        set { ViewState["AdditionalIncome"] = value; }
    } 
    
    foreach (RepeaterItem item in AddIncomeSources.Items)
    {
        var amount = (TextBox)item.Controls.Cast().First(c => c.ID == "Amount");
        var document = (DropDownList)item.Controls.Cast().First(c => c.ID == "Document");
        AdditionalIncomeList[item.ItemIndex].Amount = amount.Text.ToDouble();
        AdditionalIncomeList[item.ItemIndex].IncomeDocument = document.SelectedValue;
    }
    
    AddIncomeSources.DataSource = AdditionalIncomeList;
    AddIncomeSources.DataBind();
    

提交回复
热议问题