我正在使用asp:Repeater
,我需要一些帮助。在我的表格中,我有<td
&gt;我想改变颜色,当且仅当它的右边的<td>
包含某个文本时。
这是代码的样子:
<asp:Repeater ID="myRepeater" runat="server">
<HeaderTemplate>
<div id="myDiv">
<table id="table">
<thead>
<tr>
<th class="class">
Row 1
</th>
<th class="class">
Row 2
</th>
<th class="class">
Row 3
</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td class="myClass">
</td>
<td class="changeMyColor!">
</td>
<td class="lookAtMe">
certainText
</td>
</ItemTemplate>
在这种情况下,如果包含“certainText”,我想给出背景颜色。对我而言,这对于转发器中的每个项目都必须发生这种情况也很困难。
我在jsfiddle上找到了this,但是在我的解决方案中没有运气使用它来实现。
感谢您的帮助!
答案 0 :(得分:1)
试试这个:
$(document).ready(function()
{
$('td').each(function(index)
{
if($(this).text().indexOf("certainText") >= 0 )
{
$(this).css('background-color','red');
}
});
});
答案 1 :(得分:1)
试试这个例子:
您可以对您使用的sql适配器类型使用 foreach ,并验证调用 IF
的方法dt.NewRow();
,在示例中,因此验证每个字段并为其指定所需的颜色
答案 2 :(得分:1)
我不知道你的DataSource
是什么,但你可以改变下面的代码来实现ASP.NET方式:
<强>标记:强>
<asp:Repeater ID="myRepeater" runat="server"
OnItemDataBound="myRepeater_ItemDataBound">
................
<ItemTemplate>
<tr>
<td class="myClass" id="td1" runat="server">
</td>
<td class="changeMyColor!" id="td2" runat="server">
</td>
<td class="lookAtMe">
<asp:label id="lookAtMe" Text="<%#Eval("LookAtMe")%>" />
</td>
</ItemTemplate>
<强>代码隐藏:强>
protected void myRepeater_ItemDataBound(Object Sender, RepeaterItemEventArgs e) {
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
YourDataObject data = (YourDataObject)e.Item.DataItem;
HtmlGenericControl td1 = e.Item.FindControl("td1") as HtmlGenericControl;
HtmlGenericControl td1 = e.Item.FindControl("td2") as HtmlGenericControl;
if (data.YourProperty == "CertainText") {
td1.Attributes.Add("class","whateverClass");
td2.Attributes.Add("class","whateverClass2");
}
}
}
答案 3 :(得分:1)
jQuery(document).ready(function($) {
//Find <td>'s in your table id="table" which contains text 'certainText'
$('#table tbody td.lookAtMe:contains(certainText)').each(function() {
//You said the test was for the <td> to the right of it
//which means .prev() will return the <td> to the left
//select that <td> and change its color
$(this).prev().css({'background-color':'#a90000'});
});
});