Заполните данные на основе критериев поиска в asp.net mvc c # - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть страница со списком товаров.Все продукты отображаются на основе 3 критериев:

  1. Когда пользователь нажимает на левое меню
  2. Когда пользователь вводит в текстовое поле поиска и поиск
  3. Когда пользователь выбираетв комбинированном окне бренда

Это URL-адрес экзамена, вызванный тем, что пользователь щелкнул по приведенному ниже списку:

  1. http://mysite.com/Products?dep=1&cat=2&tab=2: отобразить продукт с depId= 1, и categoryID = 2.
  2. http://mysite.com/Products?brand=ABC_2&tab=2: отобразить продукт, имеющий название бренда = "ABC" и идентификатор бренда = 2
  3. http://mysite.com/Products?tab=2&search=ABCD: отобразить продукт, название продукта = "ABCD"

Проблема: Когда пользователь нажимает на каждую ссылку ниже, страница обновляется, поэтому я не могу смешать строку параметров вместе.Я хочу объединить эти 3 критерия вместе, т.е. когда пользователь нажимает на (1), затем продолжает (2) и (3), URL будет:

http://mysite.com/Products?dep=1&cat=2&brand=ABC_2&search=ABCD&tab=2

Таким образом,На странице будет отображаться продукт, у которого depID = 1, categoryID = 2, идентификатор бренда = 2, название бренда = ABC и название продукта = "ABCD".

Это то, что я пытался получить (3)на моем сайте. Мастер:

function SearchClick() {
   window.location = "/Products?tab=2" + ($("#txtsearch").val() != "" || $("#txtsearch").val() 
   == "undefined" ? "&search=" + $("#txtsearch").val() : "");
}

Спасибо заранее.

Ответы [ 3 ]

1 голос
/ 02 февраля 2012

Это должно помочь вам начать

Задняя часть:

  • создать SearchModel с 3 свойствами: search, brand, dep
  • есть действие Продукт, который используется в поисковой модели

Передняя часть:

  • создайте форму, которая публикует описанное выше действие Product, убедитесь, что в ней есть кнопка отправки
  • создать текстовое поле внутри этой формы с id / name = 'search'
  • создать ddl внутри этой формы с id / name = 'dep'
  • создать скрытое поле внутри этой формы с id / name = 'brand'

  • использовать jquery, чтобы обновить скрытое поле, когда пользователь нажимает на левый столбец

  • использовать jquery для отправки формы в любое время, когда пользователь: нажимает кнопку отправки, изменяет ddl или нажимает на левую колонку
1 голос
/ 02 февраля 2012

Вы также можете попробовать это, если вы используете ajax для загрузки своих страниц.

    $.ajax({
        url: '/Products',
        type: 'GET',
        dataType: 'json',
        cache: false,
        async: false,
        data: { dep: 1, brand: abc_2, search:abcd, tab:2 },
        success: function (data) {
        //Do your work here
              },
        error: function (ex) {
            alert('Error.');
        }

    });

Обычно вы помещаете 3 критерия на одну и ту же страницу, например текстовое поле поиска, выпадающий список бренда / отдела, а затем при нажатии кнопки запускает этот запрос.

1 голос
/ 02 февраля 2012

Я заметил, что вы используете jQuery, я предлагаю:

//using Request.Params
string Dept = Request.Params["dep"];
string Cat = Request.Params["cat"];
string Brand = Request.Params["brand"];
//capture the char after '?' or '&' and pass into Params["char"]
//do your search function.

Эта ссылка поможет вам.

Если вы хотите сохранить его после обновления страницы, вы можете сохранить его в Session.

string theDept = Request.Params["dep"];
Session["dep"] = aa;    

string dep = (string)Session["dep"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...