我正在尝试使用常见的淘汰赛模板。返回的数据将取决于在其中一个搜索过滤器中选择的内容。到目前为止,无论选择什么,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>