添加C#脚本以修改ListView中的文本颜色时,没有任何输出
本文关键字:颜色 输出 任何 文本 脚本 修改 ListView 添加 | 更新日期: 2023-09-27 18:22:19
所以我在asp.net中做一个网页,当我添加这个脚本时
protected void YourLabel_DataBinding(object sender, System.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";
}
}
}
并在我的列表视图部分中添加数据绑定行
<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" runat="server" OnDataBinding="YourLabel_DataBinding" Text='<%# Eval("TWA") %>' />
<br />
</span>
</ItemTemplate>
我的列表视图根本不会输出,但如果我删除
OnDataBinding="YourLabel_DataBinding"
我的列表视图输出,但TWA的颜色不会根据其值而改变,所以我做错了什么?任何帮助都将是伟大的
您需要处理ListView的OnItemDataBound
事件,而不是实际Label
的数据绑定事件。您可以在ListView的标记中这样做,如下所示:
<asp:ListView ID="YourListView" OnItemDataBound="YourListView_ItemDataBound" runat="server">
然后在代码后面,您可以处理OnItemDataBound
事件,如下所示:
protected void YourListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
Label theTWALabel = (Label)e.Item.FindControl("TWALabel");
int theTWAValue = Convert.ToInt32(theTWALabel.Text);
if (theTWAValue >= 85)
{
if (theTWAValue < 90)
{
theTWALabel.CssClass = "YellowThis";
}
else
{
theTWALabel.CssClass = "RedThis";
}
}
}
}
您需要的标签不会触发OnDataBinding事件。您必须玩ListView DataBind事件。
在这里你会发现一个的例子
简而言之,这里是最重要的代码:
protected void ListView1_DataBound(object sender, EventArgs e)
{
foreach (ListViewDataItem item in ListView1.Items)
{
Label TWALabel = (Label)item.FindControl("TWALabel");
//Now you have the Label object. do your work.
}
}