![](/img/trans.png)
[英]How to change selected DropDownList item via JavaScript/JQuery?
[英]Jquery or Javascript to change just the text color of a selected DropDownList Item
我似乎無法弄清楚這一點。 我有一個asp DropDownList 控件。 這由我從 SQL 獲得的數據的 class 列表填充。 DropDownList 位於 ASP 中繼器中。 我向觸發 C# 方法的 asp 控件添加了 OnSelectedIndexChanged 屬性。 我在 DropDownList 的初始化方法中有一些邏輯,它將特定項目的文本顏色設置為紅色(取決於該項目類中的值)。 Whenever that item is selected the text is not red. 只有當它是列表中的一個項目時,文本才會顯示為紅色。 如何更改所選項目的顏色? 我似乎無法弄清楚這一點。 我需要 C# 端的 OnSelectedIndexChanged 方法來觸發事件以過濾另一個選擇器。 So I am already firing an event when the selector is changed. 但是我嘗試了以下方法:
protected void ddlItem_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender != null)
{
DropDownList DropDownList1 = (DropDownList)sender;
DropDownList1.SelectedItem.Attributes.Add("color", "Red;");
}
}
以上不起作用。 但我不認為這是問題所在。 檢查元素后(在上述實現之前),樣式顏色屬性已設置為紅色。 這些只是不適用於當前選定的項目嗎?
我可以通過設置前景色來設置整個列表的文本顏色。 但我不能設置單個元素的前景色。
除了 firefox 和 chrome 的一些最新版本之外,我認為您通常無法做到這一點。 傳統上,我們從來沒有對 HTML SELECT 元素進行太多樣式控制,因為它們最初只是一個標准的桌面 UI 小部件固定在頁面中。
有關更多詳細信息,請參閱此答案: How to style a <select> dropdown with CSS only without JavaScript?
也就是說,您確定不應該在option
上設置Style["color"]
而不是attribute
嗎?
這是一個帶有前景色樣式的選項標簽的 jsfiddle。 Chrome 似乎工作的方式,選項顏色僅在下拉菜單打開時才重要。
DropDownList1.SelectedItem.Attributes.CssStyle.Add("color", "red");
當我嘗試它時工作; 它改變了所選項目的顏色。
<asp:DropDownList ID="ddlItem" runat="server" AutoPostBack="True"
onselectedindexchanged="ddlItem_SelectedIndexChanged">
<asp:ListItem Text="hi" Value="hi" />
<asp:ListItem Text="there" Value="there" />
<asp:ListItem Text="testing" Value="testing" />
</asp:DropDownList>
protected void ddlItem_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender != null)
{
DropDownList DropDownList1 = (DropDownList)sender;
DropDownList1.SelectedItem.Attributes.CssStyle.Add("color", "red");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.