0
我想使用一個常見的淘汰賽模板。返回的數據將取決於在其中一個搜索過濾器中選擇的內容。截至目前,無論選擇什麼,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>
所以會在任何時間givenpont顯示在TD中的任何一個? – Adrian
只需使用if添加其他處理程序即可。如果你在一個容器內部使用它們來減少綁定,你可以添加儘可能多的零,並且不需要額外的標記。我在我的手機上,或者我會顯示更多的標記,但應該很容易從答案中推斷 –
將嘗試並更新 – Adrian