基本上,我想要我的对象回来......
我有一个电子邮件对象。
public class Email{
public string emailAddress;
public bool primary;
public int contactPoint;
public int databasePrimaryKey;
public Email(){}
}
在我的用户控件中,我有一个电子邮件对象列表。
public List<Email> EmailCollection;
我将它绑定(bind)到我的用户控件中的 GridView。
if(this.EmailCollection.Count > 0){
this.GridView1.DataSource = EmailCollection;
this.GridView1.DataBind();
}
如果我以后可以从 GridView 中取回一个电子邮件对象,那将是非常棒的。
我该怎么做呢?
我也只将电子邮件对象的一些属性绑定(bind)到 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 甚至可以做到这一点吗?我需要滚动自己的东西吗?如果它能为我做这将是非常酷的。
要详细说明。
我将 List 集合保存到 View 状态中。
我最终想要得到的是,控件中的某处是否会有一个保存按钮,当事件触发时,我想从 GridView 中的数据行创建一个电子邮件对象,以与我的原始列表集合进行比较.然后,如果有变化,那么我会更新数据库中的那一行。我在想,如果我可以将一个 List 集合放入一个 GridView 中,那么也许我可以把它拿回来。
也许我为我的 Email 对象创建了一个新的构造函数,它需要一个 DataRow?但是其中有很多复杂性......
最佳答案
就对象操作而言,ASP.NET 数据绑定(bind)是一种单向操作。但是,DataSource 属性将在整个响应中包含对您的 EmailCollection 的引用:
EmailCollection col = (EmailCollection)this.GridView1.DataSource;
但我有一种感觉,你真正想要的是一个控件,它可以根据用户输入来操纵你的 EmailCollection 并在下一个请求中检索它。甚至网络表单也无法伪造这种开箱即用的状态。
关于asp.net - 从我的 GridView 行中取回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/539224/