一般的なノックアウト テンプレートを使用しようとしています。返されるデータは、検索フィルターの 1 つで何が選択されたかによって異なります。現在、選択されているものは何でも、DOB TD が他の TD と一緒に表示されます。選択に基づいて TD を表示/非表示にしたい。どうすればいいですか?
オブザーバブルの一部
self.SearchByVal = ko.observable(""); // Holds the value of the filter selected
self.SearchByVal(document.getElementById("<%=ddlSearchBy.ClientID%>").value); // Hold the selected value.
選択できる値は、DOB、JoinDate、RetirementDateです。
HTML
<table width="100%" id="tblSearchResults" data-bind="visible: SearchResults().length>0">
<thead >
<tr >
<th align="left">Employee Name</th>
<th>Gender</th>
<th align="left" data-bind="text:SearchByVal"></th>
</tr>
<tr style="border-bottom: 1px solid #CCC;">
<th colspan="3"></th>
</tr>
</thead>
<tbody id="EmployeeDetails" data-bind="template: { name:'TmplSearchResults', foreach: SearchResults }">
</tbody>
</table>
テンプレート
<script type="text/html" id="TmplSearchResults">
<tr style="border-bottom: 1px solid #CCC;" >
<td valign="middle" data-bind="text: name"></td>
<td valign="middle" align="center" data-bind="text: gender"></td>
if (self.SearchByVal() == "DOB") { //<-- I tired this but shows in all cases
<td valign="middle" data-bind="text: dob"></td>
}
if (self.SearchByVal() == "JoinDate") { //<-- This also shows when DOB is selected
<td valign="middle" data-bind="text: JoinDate"></td>
}
</tr>
</script>