В принципе, я хочу вернуть свой объект...
У меня есть объект электронной почты.
public class Email{
public string emailAddress;
public bool primary;
public int contactPoint;
public int databasePrimaryKey;
public Email(){}
}
В моем usercontrol, я список объектов электронной почты.
public List<Email> EmailCollection;
И я привязываю это к GridView внутри моего usercontrol.
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.
В чем я в конечном итоге попытаюсь добраться, появится кнопка "Сохранить" где-нибудь в элементе управления, который, когда срабатывает событие, я хотел бы создать объект электронной почты из datarow в GridView, который по сравнению с моим оригинальная коллекция списка. Тогда, если есть изменения, я бы обновил эту строку в базе данных. Я думал, что если бы я мог поместить коллекцию List в GridView, то, возможно, я смог бы получить ее обратно.
Возможно, я создаю новый конструктор для моего объекта электронной почты, который принимает DataRow? Но тогда есть много сложностей, которые входят в это...