У меня есть @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