我有一个listview和它的ItemTemplate,一个包含一些控件的asp:面板。 我需要在asp:panel中应用三个不同的css类,具体取决于我的asp:panel中的一个控件的值。
这是我的代码:
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
HiddenField type = (HiddenField)e.Item.FindControl("valueOfAd_type");
HiddenField paid = (HiddenField)e.Item.FindControl("valueOfPayment");
Panel ThePanel = (Panel)e.Item.FindControl("Panel1");
if ( paid.Value == "2")
{
if (type.Value == "1") //First condition
{
ThePanel.Attributes.Add("class", "whiteBackground");
}
else if (type.Value == "2") //Second condition
{
ThePanel.Attributes.Add("class", "redBackground");
}
}
else //third condition
{
ThePanel.Attributes.Add("class", "blueBackground");
}
}
}
问题是,无论发生哪种情况,总是最后一个css类将应用于我的所有asp:面板。 现在我的问题是如何将不同的CSS类应用于不同的ItemTemplate中的asp:panel?
答案 0 :(得分:0)
为了更好地为您提供帮助,我们需要前端语法。这样我们就可以看到ItemTemplate
中存在的所有Panel。根据您的代码,它似乎是一个Panel。
否则,我确实注意到以下内容:
String.Compare(...);
进行比较会更好。此外,您可以简化代码:
control.CssClass = "style";
您还声明它始终显示蓝色背景,我会验证某个值是否实际输入了您的初始if
声明。