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;

而且我将其绑定到我的usercontrol中的GridView.

if(this.EmailCollection.Count > 0){
    this.GridView1.DataSource = EmailCollection;
    this.GridView1.DataBind();
}

这将是真的很棒,如果我可以得到一个电子邮件对象后退出GridView.

我该怎么做?

我也只绑定一些电子邮件对象的属性到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集合保存到viewstate中.

我最终想要得到的是,控件中有一个Save按钮,当事件触发时,我想从GridView中的一个数据行创建一个Email对象,以便与我的原始List集合进行比较.那么如果有变化,那么我会更新数据库中的那一行.我在想,如果我可以把一个List集合到一个GridView,那么也许我可以把它重新出来.

也许我为我的电子邮件对象创建一个新的构造函数,它需要一个DataRow?但是,然后有很多复杂性进入…

解决方法

ASP.NET数据绑定是对象操纵方面的单向操作.但是,DataSource属性将在整个响应中包含对您的EmailCollection的引用:
EmailCollection col = (EmailCollection)this.GridView1.DataSource;

但我有一种感觉,你真正想要的是一个控件,它可以根据用户输入来操作你的EmailCollection,并在下一个请求中检索它.即使是Webforms也不能将这种状态伪造出来.

猜你在找的asp.Net相关文章