2011-07-27 41 views
0

私はモデルがあります:Asp.Net MVC 3 WebGridどのように複数の行を強調するには?

List<Customer> Customers = New List<Customer>(); 
Customers.Add(new Customer {Name = "Facebook", Age = 5}); 
Customers.Add(new Customer {Name = "Microsoft", Age = 30}); 
Customers.Add(new Customer {Name = "Google", Age = 5}); 

のWebGridでカミソリのエンジンを使用して、私は時に年齢= 5「赤」に行の背景色を変更したいですか?

ありがとう、 Ashraf。

答えて

1

javascriptとサーバーサイドのロジックを組み合わせて使用​​します。私は彼らがより良い解決策かもしれないと思うが、次のような仕事がある。アイデアは、指定した条件が有効な場合に、行項目にCSSクラスを設定することです。その後、いくつかのクライアント側のJavaScriptを使用して、赤にクラス

@{ 
     var grid = new WebGrid(source: Model, 
      defaultSort: "Name", 
      rowsPerPage: 3); 
    } 
    <div id="grid"> 
    @grid.GetHtml(
     tableStyle: "grid", 
     headerStyle: "head", 
     alternatingRowStyle: "alt", 
     columns: grid.Columns(
     grid.Column(
     columnName:"Age", 
     header:"Company Age",  
     format: (item) => 
     { 
      var css = @"class=""overdue""" ; 
      if ((int)item.Age != 5) 
      { 
       css = ""; 
      } 
      return Html.Raw("<span " + css + ">" + @item.Age + "</span>"); 
     }), 
      grid.Column("Name") 
    ) 
    ) 
    </div> 


    <script type="text/javascript"> 
     $(function() { 
      $("#grid tr").each(function() { 

       var shouldBeRed = $(this).find(".overdue"); 

       if (shouldBeRed.length > 0) { 
        alert($(this).html()); 
        $(this).attr("class", "redRow"); 
       } 
      }); 
     }); 
    </script> 
+0

おかげアフマドのCSSを設定する必要があるローを見つけます。それは素晴らしい作品です。 – ashraf

関連する問題