asp.net - 从我的 GridView 行中取回对象

标签 asp.net gridview

基本上,我想要我的对象回来......

我有一个电子邮件对象。

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/

相关文章:

c# - gridview 行上的 Ajax 动画

c# - 对齐标题文本中心 asp :GridView

gridview - 如何在GridView-yii2中设置排序路线

asp.net - Gridview 将当前行与上一行进行比较

asp.net - 不引用 MVC 的 AllowHtml 属性

c# - 读取大型 XLSX 文件

asp.net - 为 Web 服务配置 SSL

c# - 当 gridview 再次获取数据绑定(bind)时,如何保留在 gridview 模板字段内的 TextBox 中输入的值?

asp.net - Windows Azure 中的滑动过期

asp.net - Web.config 中运行时部分的用途