MVC ビューでテーブルの行スタイルを条件付きで設定できるようにしたいと考えています。
これが私がテーブルを構築している方法です。モデルの出席エンティティに personID があるかどうかに基づいて td スタイルを設定したいことがわかります。デバッグすると、スタイルが設定されていることがわかりますが、ページが更新されないため、手動で更新するまでスタイルは表示されません。
@foreach (var item in Model.People)
{
int attendedPersonID = Model.Attendances.Where(a => a.PersonID == item.PersonID).Select(p => p.PersonID).SingleOrDefault();
<tr>
<td style="@(attendedPersonID == item.PersonID ? "color:green" : "color:red")" >
@Html.HiddenFor(model => item.PersonID) @Html.DisplayFor(modelItem => item.FullName)
</td>
<td>
<button value="@item.PersonID" class="present">Present</button>
<button value="@item.PersonID" class="absent">Absent</button>
</td>
</tr>
}
編集、ページが読み込まれるたびに人のリストをリロードしたくないと決めたので、現在は ajax を使用してテーブルを作成しています。テーブルがajaxで構築されている場合、jQueryセレクターを見つけるにはどうすればよいですか?
$.getJSON("/Attendance/People/", function(data) {
var table='<table>';
$.each( data, function( index, item){
table+='<tr><td><input type=hidden id="personID" value='+item.personID+' /></td><td>'+item.FullName+'</td><td><button value='+item.personID+' class="present">Present</button><button value='+item.personID+' class="absent">Absent</button></td></tr>';
});
table+='</table>';
$("#table1").html( table );
});