我有一个表格,有4个不同的选项(项目) 我需要做的就是在没有PostBack的情况下从客户端设置不同的颜色。
有人可以帮我吗?
is.vector(vector)
我只是为此寻找解决方案,但还没有成功。这就是为什么我还没有尝试过任何东西。
答案 0 :(得分:3)
此标记为每个项目应用不同的背景颜色,并设置onchange
事件处理程序:
<asp:DropDownList ID="DropDownList1" runat="server" onchange="SetDropDownListColor(this);">
<asp:ListItem style="background-color: White !important;" >Select...</asp:ListItem>
<asp:ListItem style="background-color: Green !important;" >Complete</asp:ListItem>
<asp:ListItem style="background-color: Yellow !important;" >Running</asp:ListItem>
<asp:ListItem style="background-color: Red !important;" >Waiting in SEV 1</asp:ListItem>
<asp:ListItem style="background-color: Blue !important;" >No Batch</asp:ListItem>
</asp:DropDownList>
以下Javascript确保选择框的颜色与所选项目的颜色匹配:
function SetDropDownListColor(ddl) {
for (var i = 0; i < ddl.options.length; i++) {
if (ddl.options[i].selected) {
switch (i) {
case 0:
ddl.style.backgroundColor = 'White';
return;
case 1:
ddl.style.backgroundColor = 'Green';
return;
case 2:
ddl.style.backgroundColor = 'Yellow';
return;
case 3:
ddl.style.backgroundColor = 'Red';
return;
case 4:
ddl.style.backgroundColor = 'Blue';
return;
}
}
}
}
!important
修饰符在列表中项目的标记中设置,以覆盖在Javascript函数中设置为整个控件的背景颜色。
为了在回发后保留DropDownList的颜色,可以将以下代码行添加到Javascript块中。它为页面的load
事件定义了一个处理程序,其中所选项目的颜色应用于选择框:
window.addEventListener('load', function () { SetDropDownListColor(document.getElementById('<%= DropDownList1.ClientID %>')); }, false);
答案 1 :(得分:0)
试用以下代码
在filename.aspx.cs文件中......
protected void Page_Load(object sender,EventArgs e) { if(!IsPostBack) { System.Drawing.Color c1 = new System.Drawing.Color(); 输入t = c1.GetType(); int row; foreach(t.GetProperties()中的System.Reflection.PropertyInfo p1) { ColorConverter d = new ColorConverter(); 尝试 {
DropDownList2.Items.Add(p1.Name);
for (row = 0; row < DropDownList2.Items.Count - 1; row++)
{
DropDownList2.Items[row].Attributes.Add("style",
"background-color:" + DropDownList2.Items[row].Value);
}
}
catch
{
// Catch exceptions here
}
}
}
}
答案 2 :(得分:0)
这对我有用...
ListItem listItem = new ListItem();
listItem.Attributes.Add("style", "background-color: Gold !important;");
listItem.Text = "Apply for funding";
dlPayment.Items.Add(listItem);