尝试更改ListView中背景标签的颜色

时间:2013-07-12 21:25:41

标签: c# javascript html asp.net .net

我正在尝试在twa处于不同的值时更改背景的颜色但是使用我当前的代码,数据不会触发,但是当我删除

   <asp: Label id="TWAlabel" OnDataBinding="ListView2_OnDataBinding">

但是当我删除OnDataBinding时数据会激活,所以我不知道出了什么问题。我在Asp.net(C#),JavaScript中这样做,数据来自Access数据库。这是我的代码:

 <style>
    .YellowThis
    {
    background-color:yellow;

 } 

 .RedThis
  {
 background-color:red;
 }

    .GreenThis  
    {
background-color:green;
 }

</style>        <asp:ListView id="ListView2" runat="server" DataSourceID="SqlDataSource3"  EnableViewState="False">

    </InsertItemTemplate>
    <ItemTemplate>
    <span style="background-color: white;color: #333333; border: 2em; border-width:1em; border-color:black;">
    Plant Name:
    <asp:Label id="PlantLabel" runat="server" Text='<%# Eval("Plant") %>' />
    <br />
    Department #:
    <asp:Label id="column1Label" runat="server" Text='<%# Eval("column1") %>' />
    <br />
    Department Name:
    <asp:Label id="GroupLabel" runat="server" Text='<%# Eval("Group") %>' />
    <br />
    Job Code:
    <asp:Label id="Job_CodeLabel" runat="server" Text='<%# Eval("Job_Code") %>' />
    <br />
    TWA:
    <asp:Label id="TWALabel" OnDataBinding="ListView2_DataBinding" runat="server" Text='<%# Eval("TWA") %>' />
    <br />
    Job Classification:
    <asp:Label id="Job_ClassificationLabel" runat="server" Text='<%# Eval("Job_Classification") %>' />
    <br />
    Job Function:
    <asp:Label id="Job_FunctionLabel" runat="server" Text='<%# Eval("Job_Function") %>' />
    <br />
    Job Description:
    <asp:Label id="Job_DescriptionLabel" runat="server" Text='<%# Eval("Job_Description") %>' />
    <br />
    <br />
    </span>
    </ItemTemplate>
    <LayoutTemplate>
    <div id="itemPlaceholderContainer" runat="server"  style="font-family: Verdana, Arial, Helvetica, sans-serif; text-align:center; border:3em; border-color:black;">
    <span runat="server" id="itemPlaceholder" />
    </div>
    <div style="text-align: left;background-color: white;font-family: Verdana, Arial, Helvetica, sans-serif;text-decoration:underline ;color: #FFFFFF;" >
    </div>
    </LayoutTemplate>
    <SelectedItemTemplate>
    <span style="background-color: white;font-weight: bold;color: #333333;">
    <u>Plant Name</u>:
    <asp:Label id="PlantLabel" runat="server" Text='<%# Eval("Plant") %>' />
    <br />
    Department #:
    <asp:Label id="column1Label" runat="server" Text='<%# Eval("column1") %>' />
    <br />
    Department Name:
    <asp:Label id="GroupLabel" runat="server" Text='<%# Eval("Group") %>' />
    <br />
    Job Code:
    <asp:Label id="Job_CodeLabel" runat="server" Text='<%# Eval("Job_Code") %>' />
    <br />
    TWA:
    <asp:Label id="TWALabel" runat="server" Text='<%# Eval("TWA") %>' />
    <br />
    Job Classification:
    <asp:Label id="Job_ClassificationLabel" runat="server" Text='<%# Eval("Job_Classification") %>' />
    <br />
    Job Function:
    <asp:Label id="Job_FunctionLabel" runat="server" Text='<%# Eval("Job_Function") %>' />
    <br />
    Job Description:
    <asp:Label id="Job_DescriptionLabel" runat="server" Text='<%# Eval("Job_Description") %>' />
    <br />
    <br />
    </span>
    </SelectedItemTemplate>
    </asp:ListView>


    <script runat="server">
    protected void ListView2_DataBinding(object sender, EventArgs e)
  {
      Label lbl = (Label)(sender);
 int TWA = (int)(Eval("TWA"));
lbl.Text = TWA.ToString();
if (TWA >= 85)
{
    if (TWA < 90)
    {
        lbl.CssClass = "YellowThis";
    }
    else
    {
        lbl.CssClass = "RedThis";
    }
}
else 
{
lbl.CssClass="GreenThis";
}
 }
</script>

2 个答案:

答案 0 :(得分:0)

您可以在后面的代码中执行此操作。迭代列表项。

protected void add_color()
{

foreach(ListItem li in ListView2.Items)
{ 
       Label your_label = (Label)li.FindControl" your_label_name";      
       int TWA = Convert.ToInt32(your_label);



   if (TWA > 90)
                {

                       your_label.BackColor = System.Drawing.Color.Yellow 

                }

}
}

答案 1 :(得分:0)

这个问题超过1年,我不确定它是否会帮助这里的任何人。

我认为你的代码出了什么问题是因为你的listview数据绑定事件是在Label中创建的,而不是在Listview中创建它。

您可以做的是在ListView控件中创建数据绑定事件并读取TWA标签的值,然后设置ListView控件背景颜色。

相关问题