我正在使用gridview,它在edittemplate字段中有下拉列表。下拉列表中有3个列表项:红色,琥珀色,绿色。我想显示颜色,而不是在listitems中显示文本,因为我使用dropdownlist的onLoad事件,但是此事件无法识别下拉列表。 下拉列表设计师代码:
<asp:TemplateField HeaderText="Color">
<EditItemTemplate>
<asp:DropDownList ID="ddlcolor" runat="server" AppendDataBoundItems="true" DataTextField="COLOR" DataValueField ="COLOR" OnLoad="DDLColor_Load">
<asp:ListItem Value="-1">- Select Color -</asp:ListItem>
<asp:ListItem Value="0">Amber</asp:ListItem>
<asp:ListItem Value="1">Green</asp:ListItem>
<asp:ListItem Value="2">Red</asp:ListItem>
</asp:DropDownList></EditItemTemplate></asp:TemplateField>
代码行间中的Dropdownlist onLoad事件:
protected void DDLColor_Load(object sender, EventArgs e)
{
for (int i = 0; i < ddlcolor.Items.Count; i++)
{
ddlcolr.Items[i].Attributes.Add("style", "background-color:" + ddlcolor.Items[i].Text);
}
}
但是,它显示下拉列表ddlcolor在当前上下文中不存在。 我需要在gridview中找到此控件吗?请建议。
答案 0 :(得分:2)
你是对的。你需要找到控件。使用sender参数将帮助您找到下拉列表而不使用find控制方法
protected void DDLColor_Load(object sender, EventArgs e)
{
DropdownList ddlcolr=(Dropdownlist)sender;
for (int i = 0; i < ddlcolor.Items.Count; i++)
{
ddlcolr.Items[i].Attributes.Add("style", "background-color:" + ddlcolor.Items[i].Text);
}
}