В системе часто бывает много пунктов меню, каждый пункт меню соответствует странице. Как правило, пользователям нужно использовать только некоторые обычно используемые функции. Если вам нужно перейти в меню на каждом уровне, чтобы найти соответствующие функции, это действительно немного громоздко. Особенно, когда есть много меню, и клиенты не знакомы с системой в целом, если есть любимый модуль, похожий на браузер, подключите и сохраняет некоторые обычно используемые меню и найдите соответствующую страницу на домашней странице этих фаворитов каждый раз, она будет действительно трудоемкой и очень удобной. Это эссе представляет идею реализации этих фаворитов в рамках разработки на основе Metronic Bootstrap.
1. Эффект обработки интерфейса системного интерфейса
Чтобы реализовать эту функцию фаворитов, нам также необходимо поместить вход в модуль фаворитов в очевидное место страницы системы, а также функцию, которая может быть добавлена в соответствующие фавориты для каждой страницы.
После сравнения мы разместили эти функции записи возле заголовка страницы, чтобы мы могли легко и быстро собирать их, как показано в следующем эффекте.
Когда мы нажимаем кнопку [Добавить к фаворитам] на странице, мы добавляем соответствующее заголовок страницы и подключение к записи фаворитов.
В функции [View Fastorites] мы можем отобразить добавленные нами ссылки страницы, нажмите одну из записей, чтобы быстро ввести соответствующую страницу, которая осознает нашу необходимость быстро ввести функциональный модуль.
Самое важное здесь - сортировать фавориты, перемещая записи вверх или вниз, чтобы они могли соответствовать обработке интерфейса.
2. Процесс реализации системных фаворитов
После понимания вышеуказанного эффекта интерфейса функции фаворитов на странице системы нам необходимо понять его конкретный процесс реализации. Во -первых, нам нужно разработать таблицу для хранения информации, соответствующей фаворитам, заголовка страницы, адреса страницы, сортировки и другой информации.
Интерфейс дизайна базы данных показан ниже.
Мы заметили, что записи сортировки хранятся в десятичном формате, и мы сортируем их по значению с долготой, чтобы, когда мы можем настроить, мы можем изменить размер между ними.
Используйте базу данных Database2sharp для генерации кода, чтобы быстро генерировать основной связанный код и веб -контроллер и просмотр кода, а затем интегрировать его в структуру, чтобы мы могли иметь интерфейс всего модуля и обработать код.
Поскольку в целом, наш интерфейс отображения данных и редактирование является относительно стандартным, а требования к входному отображению фаворитов различны, нам необходимо добавить представление в интерфейс списка, чтобы отобразить простой интерфейс ввода, как показано на рисунке.
Этот интерфейс содержит обработку записей движения, включая вверх или вниз.
Как упоминалось ранее, наша сортировка записей в основном достигается через месторождение заместителя децимала типа.
Когда класс объектов инициализируется, мы назначаем отсортированное значение для временной метки UNIX текущего времени.
Приведенный выше код функции DateTimetoint показан ниже, который также является нашим часто используемым методом обработки.
/// <summary> /// Расширенный интерфейс времени, может вернуть значение формирования /// </summary> /// <param name = "time"> </param> /// <return> </return> public int dateTimetoint (This DateTime Time) {System.DateTeTime startTime = timezone.currentTimeCone.toloCaltime (nevallime. 1)); return (int) (время - начало) .tolalseconds; }Чтобы реализовать движение записей, нам необходимо реализовать движущуюся логическую обработку на уровне Service BLL, чтобы облегчить вызов в контроллере.
/// <summary> /// Обновление порядок вверх или вниз /// </summary> /// <param name = "id"> записанный идентификатор </param> /// <param name = "Moveup"> Move Up или Move Dow
Реализованный код функции выглядит следующим образом
/// <summary> /// Обновление порядок вверх или вниз /// </summary> /// <param name = "id"> идентификатор записи </param> /// <param name = "Moveup"> UP или Move Up, true </param> /// <return> </returns> public bool Updown (String id, bool moveup) {// set the indering juol isdescend usedsdest; bool result = false; Webfavoriteinfo info = findbyid (id); if (info! = null) {// Создание строки запроса condity = ""; if (isdescending) {condition = string.format ("seq {0} {1}", перемещение? ">": "<", info.seq); } else {condity = string.format ("seq {0} {1}", перемещение? "<": ">", info.seq); } var list = basedal.find (условие); Десятичный newseq = 0m; switch (list.count) {case 0: newseq = info.seq; // он уже вверху или внизу, порядок остается неизменным по умолчанию; Случай 1: // Есть запись выше или ниже, если (ISdescending) {newseq = MoveUp? (список [0] .seq + 1m): (список [0] .seq - 1m); } else {newseq =! MoveUp? (список [0] .seq + 1m): (список [0] .seq - 1m); } перерыв; Случай 2: // средняя область, возьмите среднее значение newseq = (list [0] .seq + list [1] .seq) /2m; перерыв; по умолчанию: // случай, когда более двух - if (moveup) {newseq = (list [list.count - 2] .seq + list [list.count - 1] .seq) /2m; } else {newseq = (list [0] .seq + list [1] .seq) / 2m; } перерыв; } // Unified Modiation Order info.seq = newseq; result = update (info, info.id); } return Result;}Таким образом, мы дополнительно инкапсулируем этот интерфейс BLL -слоя в контроллере MVC, чтобы облегчить обработку вызовов AJAX на передней части страницы. Код инкапсуляции выглядит следующим образом.
/// <summary> //// Move Record /// </summary> /// <param name = "id"> идентификатор записи </param> //// <param name = "up"> обновление верно, в противном случае это false </param> /// <return> </returns> [httppost] public oversowlult (string id, bool up) {commonresult restultsult = newresult restultresult () restultresult () resturesult restultresult () restureSult = newResult () stursult (); if (! string.isnullorempty (id)) {try {result.success = bllFactory <webfavorite> .instance.Updown (id, up); } catch (Exception ex) {result.errormessage = ex.message; }} return tojsonContent (result);}Таким образом, мы можем назвать этот метод в представлении интерфейса на передней части страницы.
Во-первых, сгенерировать фронтальный HTML-код с помощью привязки JS, как показано ниже.
$ ("#grid_body"). html (""); $. Каждый (data.rows, function (i, item) {var tr = "<tr>"; tr + = "<td> <a class = 'btn btn-sm blue' href = '" + item.url + "'>" + ittle + "</a> </td>"; «a href = 'javascript:;' class = 'btn btn-sm green' onclick =/" up ('" + item.id +"')/"title = 'wote up'> <span class = 'glyphicon glyphicon-rrow-u btn-sm blue 'onclick =/"down (" " + item.id +"')/"title = 'Move Down'> <span class = 'glyphicon Glyphicon-arrow-down'> </span> </a>"; tr + = "</td>"; tr + = "</tr>"; $ ("#grid_body").Затем обработайте его через функцию вверх или вниз и перемещайте положение вверх или вниз.
var ududownurl = "/webfavorite/updown" function up (id) {var postdata = {id: id, up: true}; $ .post (updownurl, postdata, function (json) {var data = $ .parsejson (json); if (data.success) {showtips ("opplop upperty"); rebresh (); // presember data} else {showtips (data.errormessage);}); }; $ .post (udvownurl, postdata, function (json) {var data = $ .parsejson (json); if (data.success) {showtips ("успешно двигаться вниз"); refresh (); // Обновление данных} else {showtips (data.errormessage);});};Это реализует порядок движения, который нам нужен. Кроме того, при добавлении мы определяем, добавил ли соответствующий пользователь URL. Если он существует, нет необходимости добавлять его неоднократно. Передний конец должен вызвать его только через Ajax, а затем ответить на него.
Благодаря реализации этих кодов мы можем быстро управлять фаворитами и быстро ввести пользователя, предоставляя более дружеский опыт.
Выше представлено любимая функция ссылки на странице на основе начальной загрузки, представленной редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!