Zasadniczo chcę odzyskać mój obiekt ...Uzyskiwanie obiektu z powrotem z moich wierszy GridView
Mam obiekt poczty elektronicznej.
public class Email{
public string emailAddress;
public bool primary;
public int contactPoint;
public int databasePrimaryKey;
public Email(){}
}
W moim kontrolerze użytkownika, i liście obiektów e-mail.
public List<Email> EmailCollection;
I wiążę to do GridView wewnątrz mojej kontroli użytkownika.
if(this.EmailCollection.Count > 0){
this.GridView1.DataSource = EmailCollection;
this.GridView1.DataBind();
}
Byłoby naprawdę super, gdybym mógł uzyskać obiekt email z powrotem się z GridView później.
Jak to zrobić?
Łączę również niektóre właściwości obiektu poczty elektronicznej z GridView i są one umieszczane w szablonach elementów.
<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>
Czy GridView może to zrobić? Czy muszę przetaczać własne rzeczy? Byłoby naprawdę fajnie, gdyby to zrobił dla mnie.
Aby opracować więcej.
Zapisuję kolekcję List do stanu widoku.
Do czego w końcu próbuję się dostać, jest przycisk Zapisz gdzieś w sterowaniu, który po uruchomieniu zdarzenia chciałbym utworzyć obiekt Email z pliku danych w GridView, który można porównać do moja oryginalna kolekcja List. Jeśli pojawi się zmiana, zaktualizuję ten wiersz w bazie danych. Pomyślałem, że gdybym mógł umieścić kolekcję List w GridView, to prawdopodobnie mógłbym to naprawić.
Być może mogę utworzyć nowy konstruktor dla mojego obiektu Email, który pobiera DataRow? Ale istnieje wiele komplikacji, które się w to mieszczą ...