【发布时间】:2015-08-22 23:58:27
【问题描述】:
我有一个显示预告片信息的 DataGrid。我决定将位置列更改为 DropDownList,以便可以轻松更改位置。但我不确定如何填充 DropDownList。
<asp:DataGrid runat="server" CssClass="tblResults" OnItemDataBound="dgList_ItemCreated" OnRowDataBound="OnRowDataBound" AllowSorting="true" OnSortCommand="dgTrailer_Sort" ID="dgTrailers" DataKeyField="ID" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="TrailerOwner" HeaderText="Owner" SortExpression="TrailerOwner"></asp:BoundColumn>
<asp:BoundColumn DataField="TrailerMake" HeaderText="Trailer Make" SortExpression="TrailerMake"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Trailer Location">
<itemtemplate>
<asp:DropDownList ID="ddlLocation" runat="server">
</asp:DropDownList>
</itemtemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
我已经有一个用于位置的 DropDownList(称为 ddlTrailerLocation),因此用户可以选择预告片的位置,然后 DataGrid 会显示所有这些信息。
protected void PopulateDDLs()
{
DataSet dsTrailerLocation = DataUtils.GetAllGenSmall(Company.Current.CompanyID, "Description", "", 1, false, "Description", false, "TrailerLocationNOCODE", 0);
if (dsTrailerLocation.Tables[0].Rows.Count > 0)
{
ddlTrailerLocation.DataSource = dsTrailerLocation;
ddlTrailerLocation.DataValueField = "Description";
ddlTrailerLocation.DataTextField = "Description";
ddlTrailerLocation.DataBind();
ddlTrailerLocation.Items.Insert(0, new ListItem("Select One", "0"));
}
else
{
ddlTrailerLocation.Items.Insert(0, new ListItem("No Locations Entered", "0"));
}
}
protected void dgList_ItemCreated(object sender, DataGridItemEventArgs e)
{
DropDownList ddlTrailerLocation = e.Item.FindControl("ddlLocation") as DropDownList;
DataSet dsTrailerLocation = DataUtils.GetAllGenSmall(Company.Current.CompanyID, "Description", "", 1, false, "Description", false, "TrailerLocationNOCODE", 0);
if (ddlTrailerLocation != null)
{
ddlTrailerLocation.DataSource = dsTrailerLocation;
ddlTrailerLocation.DataValueField = "Description";
ddlTrailerLocation.DataTextField = "Description";
ddlTrailerLocation.DataBind();
}
}
编辑 在受保护的 void dgList_ItemCreated 中添加了代码。下拉列表现在显示一个位置,但它不是正确的位置 {
【问题讨论】:
-
你先用谷歌搜索了吗?
-
是的,但我不知道该怎么做,因为下拉列表已经存在,所以我不得不为数据网格中的新下拉列表提供不同的 ID。我不确定我需要什么 c# 代码来填充它
-
您可以在网格视图中提供任何名称 id,并在行数据绑定事件中使用不同的别名进行访问。这是示例aspsnippets.com/Articles/…
标签: c# html asp.net drop-down-menu datagrid