По сути, я хочу вернуть свой объект ...
У меня есть объект электронной почты.
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();
}
Было бы действительно здорово, если бы я мог получить объект Email обратно из из GridView позже.
Как мне это сделать?
Я также связываю только некоторые свойства объекта Email с 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? Но тут есть много сложностей, которые входят в это ...