1

我有以下代码:

IList<AccountMember> query;

using (DBEntities context = new DBEntities())
{

    Guid ModifyUser = new Guid(Session["ModifyUser"].ToString());

    query = (from AccountMember member in context.AccountMember
         where member.AccountMemberId == ModifyUser
         select member).ToList();


    foreach (AccountMember member in query)
    {
    //this.FirstName.Text = member.FirstName;
    ControlCollection controls = this.Controls;

    foreach (Control control in controls)
    {
        if (control is TextBox)
        {
        TextBox x = (TextBox)control;
        x.Text = member.FirstName; // want to replace the .FirstName with the TextBox ID value somehow
        }
    } // foreach (Control control in controls)
    } // foreach (AccountMember member in query)

} // using (DBEntities context = new DBEntities())

在包含 x.Text = member.FirstName; 的行处 我想用 TextBox ID 字符串替换 FirstName 项。这样我就可以自动循环并填充我的文本框

4

1 回答 1

2

您是否尝试过创建一个bindingsource然后将您的文本框绑定到此。

在运行时,您可以将您的 EF 实体绑定到绑定源,并且您的控件将被自动填充。

可以在此处找到一个很好的示例- 它显示了与网格的绑定,但与单个控件的绑定原理相似。

此外,要拉出单个实体,您可以执行以下操作:

AccountMember member = context.AccountMember
                              .Single(m => m.AccountMemberId == ModifyUser);

// Bind the fetched entity to the bindingsource and hence to the UI controls
// At runtime this is all that is needed to update the controls, as long as 
// you have set things up at design time.
myBindingSource.DataSource = member;
于 2011-01-13T23:09:17.690 回答