ASP.. NET列表框中的gridview
本文关键字:gridview NET 列表 ASP | 更新日期: 2023-09-27 18:08:49
我有一个gridview里面的列表框,当你点击编辑时出现,它有一个事件类型列表,你可以选择多个。当单击更新按钮时,我不知道如何更新我的实体。我需要能够更新实体集合与选择从列表框内的网格视图。gridview正在使用实体数据源。下面是gridview中的列表框。
<asp:TemplateField HeaderText="Event Type">
<ItemTemplate>
<asp:Label runat="server" ID="eventTypeLabel" Text="<%#VenueExplorer.Utilities.StringUtils.convertEventsToCommaString(Container.DataItem) %>" />
</ItemTemplate>
<EditItemTemplate>
<asp:ListBox ID="eventListbox" runat="server" DataSourceID="eventTypeDataSource" DataValueField="EventTypeID" DataTextField="EventType" SelectionMode="Multiple"></asp:ListBox>
</EditItemTemplate>
</asp:TemplateField>
是否有一种方法,我可以在实际保存之前更新绑定到gridview的实体?
在GridView
的RowUpdating
事件期间,您可以捕获ListBox
的选定值。
protected void grdView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
ListBox eventListbox = (ListBox)grdViewName.Rows[e.RowIndex].Cells[ZeroBasedCellNumberOfTheListBox].FindControl("eventListbox");
// Retrieve the currently selected entity (row) from the database
ParentEntity yourParentEntity = from entity in DataContext.ParentEntity where entity.ID == grdViewName.Rows[e.RowIndex].Cells[IndexOfYourEntitysID].Text;
foreach (ListItem item in eventListbox.Items)
{
if (item.Selected)
{
EventType eventType = new EventType();
eventType.ID = item.Value;
eventType.Name = item.Text;
yourParentEntity.EventTypes.Add(eventType); }
}
DataContext.Commit();
}