基本上,我想要我的对象回来...
我有一个电子邮件对象。
public class Email{
public string emailAddress;
public bool primary;
public int contactPoint;
public int databasePrimaryKey;
public Email(){}
}
在我的用户控件中,我有一组Email对象。
public List<Email> EmailCollection;
我将它绑定到用户控件内的GridView上。
if(this.EmailCollection.Count > 0){
this.GridView1.DataSource = EmailCollection;
this.GridView1.DataBind();
}
如果我能在稍后从GridView中获取一个Email对象返回,那将非常棒。
我该如何做到这一点?
我还仅将Email对象的部分属性绑定到GridView,并将它们放入项目模板中。
<Columns>
<asp:TemplateField HeaderText="Email Address">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text=<%# Eval("EmailAddress") %> Width=250px />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Primary">
<ItemTemplate>
<asp:CheckBox runat="server" Checked=<%# Eval("PrimaryEmail") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Contact Point">
<ItemTemplate>
<CRM:QualDropDown runat="server" Type=ContactPoint InitialValue=<%# Eval("ContactPoint") %> />
</ItemTemplate>
</asp:TemplateField>
</Columns>
GridView能做到这个吗?我需要自己开发控件吗?如果GridView能够做到这点,那真的很好。更详细地说,我将List集合保存在ViewState中。最终目标是创建一个“保存”按钮,当事件触发时,我想从GridView中的数据行创建一个Email对象并将其与我的原始List集合进行比较。然后,如果有变化,我将更新数据库中的该行。我考虑过将List集合放入GridView中,然后再将其取出来。也许我可以为我的Email对象创建一个接受DataRow参数的新构造函数?但是这会带来很多复杂性...