0
我有@model IEnumerable<HotelWithRating>
- 一些酒店。 在視圖中,我有5個複選框 - 酒店的星星。混合JavaScript和C#
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td><input type = 'checkbox' value="false" id= '1' onclick = ' ShowHotels();'/></td>
<td><input type = 'checkbox' value="false" id= '2' onclick = ' ShowHotels();'/></td>
<td><input type = 'checkbox' value="false" id= '3' onclick = ' ShowHotels();'/></td>
<td><input type = 'checkbox' value="false" id= '4' onclick = ' ShowHotels();'/></td>
<td><input type = 'checkbox' value="false" id= '5' onclick = ' ShowHotels();'/></td>
</tr>
</table>
我需要顯示的酒店有例如5或4星(如果第四和第五個複選框被選中)。
應該是這樣的
<table class="Grid">
<tr>
<th>Name</th>
<th>Stars</th>
<th>Rating</th>
<th>Description</th>
</tr>
<script type="text/javascript">
function ShowHotels()
{
@foreach (var item in Model)
{
<text>
if (document.getElementById(item.Hotel.stars).checked == true)
{
<tr>
<td>@item.Hotel.Name</td>
<td>@item.Hotel.Stars</td>
<td>@item.Rating</td>
<td>@item.Hotel.Description</td>
</tr>
}
</text>
}
}
</script>
</table>
我發現關於混合代碼JavaScript的許多問題,但還沒有一個決定。
那麼你不能這樣做對不起 - 你正在發送HTML到JavaScript塊。如果您想動態更改在運行時可見的酒店集合,那麼您需要將所有酒店寫入頁面,可能使用「display:none」樣式來隱藏您不想顯示的初始集合,然後通過JavaScript控制錶行的可見性 - 或者您可以生成一個空表,然後通過AJAX加載您需要的數據集以及您需要的任何額外行。 – Rup
謝謝U.現在我不能設置風格。我這樣做:row = document.getElementsByClassName(id +「stars」); for(var i = 0; i
Stalli
我認爲更好地過濾服務器上的數據。 – Xordal