Как получить доступ к фильтрам данных в этом приложении MVC3 VB ДО загрузки данных? - PullRequest
1 голос
/ 02 марта 2012

У меня есть несколько фильтров для данных таблицы, представленных выпадающими списками, но данные таблицы действительно огромны, и процесс зависает на несколько минут, пока вся таблица не будет отрисована;только тогда будет представлена ​​таблица, и я смогу использовать эти фильтры.

Я хочу иметь доступ к фильтрам перед представлением данных;Я не хочу ждать загрузки таблицы.Это можно сделать, разделив фильтры на другое представление / контроллер, но я хочу обработать метод index().

Я попытался удалить часть, в которой процесс проверяет, установлены ли фильтры, но затем он будет работать, если я установлю только все фильтры.

Соответствующий код:

Function Index(SelectedTimeType As System.Nullable(Of Integer), SelectedTimeStatus As System.Nullable(Of Integer), SelectedProject As System.Nullable(Of Integer), SelectedTask As System.Nullable(Of Integer)) As ActionResult
        Dim tipovi = unitOfWork.TimeTypeRepository.Get(orderBy:=Function(q) q.OrderBy(Function(d) d.Opis))
        ViewBag.SelectedTimeType = New SelectList(tipovi, "TimeTypeID", "Opis", SelectedTimeType)
        Dim statusi = unitOfWork.TimeStatusRepository.Get(orderBy:=Function(q) q.OrderBy(Function(d) d.Opis))
        ViewBag.SelectedTimeStatus = New SelectList(statusi, "TimeStatusID", "Opis", SelectedTimeStatus)
        Dim projekti = unitOfWork.ProjectRepository.Get(orderBy:=Function(q) q.OrderBy(Function(d) d.Opis))
        ViewBag.SelectedProject = New SelectList(projekti, "ProjekatID", "Opis", SelectedProject)
        Dim taskovi = unitOfWork.TaskRepository.Get(orderBy:=Function(q) q.OrderBy(Function(d) d.Opis))
        ViewBag.SelectedTask = New SelectList(taskovi, "TaskID", "Opis", SelectedTask)

        Dim timeTypeID As Integer = SelectedTimeType.GetValueOrDefault()
        Dim timeStatusID As Integer = SelectedTimeStatus.GetValueOrDefault()
        Dim projekatID As Integer = SelectedProject.GetValueOrDefault()
        Dim taskID As Integer = SelectedTask.GetValueOrDefault()
        Return View(unitOfWork.TimeTrackingRepository.Get(
                    filter:=Function(d) Not (SelectedTimeType.HasValue And SelectedTimeStatus.HasValue And SelectedProject.HasValue And SelectedTask.HasValue) OrElse (d.TimeTypeID = timeTypeID And d.TimeStatusID = timeStatusID And d.ProjectID = projekatID And d.TaskID = taskID),
                    orderBy:=Function(q) q.OrderBy(Function(d) d.TimeTrackingID)))
    End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...