2

私はで作業していasp:Repeaterますが、助けが必要です。私のテーブルには、その右側に特定のテキストが含まれている<td場合に限り、色を変更したい>があります。<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で見つけましたが、私のソリューションに実装するためにそれを使用することはできませんでした。

ご協力いただきありがとうございます!

4

4 に答える 4

1

これを試して :

$(document).ready(function()
{
  $('td').each(function(index) 
  {
    if($(this).text().indexOf("certainText") >= 0 )
    {
      $(this).css('background-color','red');
    }
  });
});
于 2012-07-16T20:14:26.090 に答える
1

この例を試してください:

http://www.c-sharpcorner.com/blogs/7592/change-the-forecolor-of-an-item-in-a-repeater-based-on-the-s.aspx

使用するSQLアダプターのタイプでforeachを使用し、 IFを呼び出すためのメソッドを検証できます。

dt.NewRow();

、これは例に含まれているため、各フィールドを検証して、必要な色を割り当てます

于 2012-07-16T20:20:52.363 に答える
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");
         }

      }
   }    
于 2012-07-16T20:24:24.873 に答える
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'});
  });
});
于 2012-07-16T22:40:36.677 に答える