powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Добавить класс к ссылке при частичном обновлении
17 сообщений из 17, страница 1 из 1
Добавить класс к ссылке при частичном обновлении
    #39167254
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Ребят подскажите как сделать:

есть фильтр на главной странице:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<!---------------------------#Property Listing Filter#-------------------->
                <a class="current" href="@Url.Action("Index", "Home")">Все</a> 
 
                <a class=@ViewBag.FilterClass2 href="@Url.Action("EventsByCatMain", "Events", new { Cat = 2 })">Досуг0</a>
                @Ajax.ActionLink("Досуг", "EventsByCatMain", "Events", new { Cat = 2 }, new AjaxOptions { UpdateTargetId = "EventsByDate" }, null )
 
                <a class=@ViewBag.FilterClass13 href="@Url.Action("EventsByCatMain", "Events", new { Cat = 13 })">Психология, изотерика</a>
                <a class=@ViewBag.FilterClass17 href="@Url.Action("EventsByCatMain", "Events", new { Cat = 17 })">Бизнес</a>
 
               
                <!--------------------------#/Property Listing Filter#-------------------->



class=current у нажатой ссылки. Обычно я делаю так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 public ActionResult EventsByCatMain(int Cat)
        {
            ViewBag.Title = "Главный заголовок";
            ViewBag.FilterClass2 = "";
            ViewBag.FilterClass13 = "";
            ViewBag.FilterClass17 = "";
            ViewBag.FilterClass20 = "";
            ViewBag.FilterClass21 = "";
 
            switch (Cat)
            {
                case 2:
                    ViewBag.FilterClass2 = "current";
                    break;
 
                case 13:
                    ViewBag.FilterClass13 = "current";
                    break;
 
                case 17:
                    ViewBag.FilterClass17 = "current";
                    break;
 
                case 20:
                    ViewBag.FilterClass20 = "current";
                    break;
 
                case 21:
                    ViewBag.FilterClass21 = "current";
                    break;
            }



то есть возвращаю через вьюбег "current" той ссылке, которую кликнули.
Но сейчас нужно сделать через паршил (частичное обновление), чтобы страница не перегружалась - @Ajax.ActionLink("Досуг",..........
естественно там вьюбэг не передается, так как главная страница не обновляется и ссылка не подсвечивается как текущая.

Как тут можно выкрутиться?
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39167279
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
События фильтруются кошками, прикольно :)
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39167282
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick, если Вы хотите именно через расширение ActionLink, то укажите в UpdateTargetId идентификатор контейнера всего фильтра.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39167408
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСобытия фильтруются кошками, прикольно :)

Sputnick
Код: c#
1.
int Cat

скажи спасибо, что ЦЕЛЫМИ кошками
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168018
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСобытия фильтруются кошками, прикольно :)

это просто шутка? Или я что то не так делаю?


skyANA если Вы хотите именно через расширение ActionLink, то укажите в UpdateTargetId идентификатор контейнера всего фильтра

вы имеете в виду вставить код фильтра в обновляемый див (EventsByDate) ?

сюда - http://joxi.ru/vDr8nN5Tv1Qe26

можно, но фильтр же перегружаться будет... не красиво... я хотел по модному/удобному без перезагрузки чтобы подгружался контент по фильтру
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168020
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SputnickskyANAСобытия фильтруются кошками, прикольно :)

это просто шутка? Или я что то не так делаю?
В Вашем случае надо использовать для этого не Cat, а Dog.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168032
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronSputnickпропущено...


это просто шутка? Или я что то не так делаю?
В Вашем случае надо использовать для этого не Cat, а Dog.

так это просто название переменной , оно не играет функциональной роли, а в моем случае животные не при чем, это просто сокращенно категория.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168039
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SputnickAxeleronпропущено...

В Вашем случае надо использовать для этого не Cat, а Dog.

так это просто название переменной , оно не играет функциональной роли, а в моем случае животные не при чем, это просто сокращенно категория.Да понятно, что сокращение. Только в результате него получилась Кошка :)
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168041
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnickя хотел по модномуПереходите на JavaScript, завязывайте с хелперами :)
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168047
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASputnickя хотел по модномуПереходите на JavaScript, завязывайте с хелперами :)

после рабочего дня как то на шутки мозг не стоит )

ааа, точно, можно дергать запросы:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 $.ajax({
            url: '@Url.Action("SimilarRecFind", "Record")',
            type: 'GET',
            dataType: 'html',
            cache: false,
            traditional: true,
            data: {
                text: textViev
            },
            success: function (data) {                                    
                $("#SimilarRecords").html(data);
                 //и тут же обновлять свойства
                 $("#msg").Style("color:red");

            }
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168051
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick, простите, немого просто потролили Вас. По поводу задачи Вашей, думаю, как-то так:
Код: html
1.
@Ajax.ActionLink("Досуг", "EventsByCatMain", "Events", new { @id= 'cat2', Cat = 2 }, new AjaxOptions { UpdateTargetId = "EventsByDate", OnSuccess = "UpdateClass($(this))" }, null )



Код: javascript
1.
2.
3.
4.
5.
6.
<script>
function UpdateClass(id)
{
     $('#' + id).attr('class', 'current');
}
</script>



Но вот это жесть:

Sputnick
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 public ActionResult EventsByCatMain(int Cat)
        {
            ViewBag.Title = "Главный заголовок";
            ViewBag.FilterClass2 = "";
            ViewBag.FilterClass13 = "";
            ViewBag.FilterClass17 = "";
            ViewBag.FilterClass20 = "";
            ViewBag.FilterClass21 = "";
 
            switch (Cat)
            {
                case 2:
                    ViewBag.FilterClass2 = "current";
                    break;
 
                case 13:
                    ViewBag.FilterClass13 = "current";
                    break;
 
                case 17:
                    ViewBag.FilterClass17 = "current";
                    break;
 
                case 20:
                    ViewBag.FilterClass20 = "current";
                    break;
 
                case 21:
                    ViewBag.FilterClass21 = "current";
                    break;
            }
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168054
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnickааа, точно, можно дергать запросы:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 $.ajax({
            url: '@Url.Action("SimilarRecFind", "Record")',
            type: 'GET',
            dataType: 'html',
            cache: false,
            traditional: true,
            data: {
                text: textViev
            },
            success: function (data) {                                    
                $("#SimilarRecords").html(data);
                 //и тут же обновлять свойства
                 $("#msg").Style("color:red");

   


Это почти то же самое, что и Ajax.ActionLink, только не майкрософтовским аджаксом.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168056
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру выше, конечно, нужно будет менять скриптом класс у всех остальных ссылок, но тут, думаю, Вы сами догадаетесь уже как на данном примере.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168057
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronSputnick, простите, немого просто потролили Вас.

та я привык, ну скл ру это норма, зато спецы крутые.

Но вот это жесть:
---
да, спасибо, в копилку правильный вариант.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168063
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SputnickAxeleronSputnick, простите, немого просто потролили Вас.

та я привык, ну скл ру это норма, зато спецы крутые.

Но вот это жесть:
---
да, спасибо, в копилку правильный вариант.
правильный вариант было бы занести в модель текущий айдишник и на load страницы javascript'ом устанавливать current класс для элкмента с нужным айди. Но это валидно было бы в предыдущем Вашем варианте, когда происходит page reload.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168066
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick, а иначе у Вас выходит что Вы не только имеете огромный неоптимизированный экшн метод, который перебирвает одну категорию за другой, но и еще необоснованно используете ресурс ViewBag.
...
Рейтинг: 0 / 0
Добавить класс к ссылке при частичном обновлении
    #39168069
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще в догонку. В принципе, если что-то касается изменений внешности страницы (HTML, CSS), то лучше эту логику выносить в View или PartialView, что позволит оптимально разделить область работы для бэкенд и фронтенд разрабов. Потому как если поменяется класс 'current' на 'super', то фронтенду (или вообще просто дизайнеру) придется лезть в серверный код, искать и менять имя класса там.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Добавить класс к ссылке при частичном обновлении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]