Я использую jqgrid на EF4 MVC3 (C #).Я основал поиск на решении @Oleg, которое отлично работает и подходит для моих нужд.
В моей сетке определены следующие столбцы:
...
{ name: 'Stato', index: 'StatoTicketID', width: 20, align: 'left', sorttype: 'int', searchoptions: { sopt: ['eq']} },
{ name: 'StatoTicketID', index: 'StatoTicketID', width: 20, align: 'left', sorttype: 'int', hidden: true, searchoptions: { sopt: ['eq']} },
...
Как видите, столбец Stato
упорядочен по индексу StatoTicketID
(скрытое целочисленное поле), и порядок работает отлично.
ПРОБЛЕМА
Когда я пытаюсь найти значение Stato
, фильтр передается по индексу StatoTicketID
в виде строки, в то время как я хотел бы искатьна Stato
значения.Таким образом, я получаю исключение внутри контроллера, которое указывает, что я не могу преобразовать тип String в Int32.
Существует ли способ указать, по какому столбцу применяется поиск, когда индекс находится в другом столбце, как в моем случае?
РЕДАКТИРОВАТЬ И ВРЕМЕННОЕ РЕШЕНИЕ: На данный момент я решил свою проблему с помощью следующего обходного пути.
(inside foreach (Rule rule in rules) of FilterObjectSet by Oleg)
....
if (rule.field == "StatoTicketID")
{
rule.field = "StatoTicket.Stato";
propertyInfo = typeof(T).GetProperty("stringfield"); // where stringfield is a text type column of my model
}
Я очень хорошо понимаю, что это не элегантное решение, я ожидаю от вас любезного ответа, чтобы узнать, как реализовать требуемое поведение непосредственно из jqGrid, пожалуйста.
Спасибо взаранее