U
U
User992020-07-16 15:35:57
ASP.NET
User99, 2020-07-16 15:35:57

How can I check in ASP.NET Core if a value has changed since the previous loop iteration in a Razor Page?

How to check if value has been changed from previous loop iteration in Razor Page?
For example, I get the name of the days of the week from the database, and output data to different tables when the day changes:
5f10496105777597842107.png

for example, in python django I used the ifchange function. he did it automatically. I didn't see such a function in the documentation or I ..)

spoiler
ifchange
ifchanged
Проверяет было ли изменено значение с предыдущей итерации цикла.

Блочный тег {% ifchanged %} используется внутри цикла. Существует два способа использовать тег.

Проверять содержимое тега и если оно было изменено с последней итерации, отображать его. Например, этот код отображает список дней и отображает месяц только при его изменении:

<h1>Archive for {{ year }}</h1>

{% for date in days %}
    {% ifchanged %}<h3>{{ date|date:"F" }}</h3>{% endifchanged %}
    <a href="{{ date|date:"M/d"|lower }}/">{{ date|date:"j" }}</a>
{% endfor %}
Если передано одна или более переменных, проверяет была ли изменена одна из переменных. Например, следующий код отображает дату при каждом изменении, в то же время отображает час, если час или дата были изменены:

{% for date in days %}
    {% ifchanged date.date %} {{ date.date }} {% endifchanged %}
    {% ifchanged date.hour date.date %}
        {{ date.hour }}
    {% endifchanged %}
{% endfor %}
Тег ifchanged может содержать не обязательный блок {% else %}, который будет отображаться, если значение не изменилось:

{% for match in matches %}
    <div style="background-color:
        {% ifchanged match.ballot_id %}
            {% cycle "red" "blue" %}
        {% else %}
            grey
        {% endifchanged %}
    ">{{ match }}</div>
{% endfor %}

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question