Как динамически назначить значение сетке MVC на основе значения из другого столбца в строке - PullRequest
0 голосов
/ 27 февраля 2019

В настоящее время у меня есть набор данных, который имеет 4 столбца для значений, давайте назовем их odd_low, odd_high и even_low, even_high, и я хочу иметь два столбца в сетке (LOW и HIGH) и установить значения на основе значениядругой столбец, который будет просто «O» или «E» - этот столбец называется side

Вот краткий пример (сейчас столбец привязан только к нечетным полям)

 columns.Add(model => model.ODD_LOW).Titled("Low House #").Sortable(sortable);
columns.Add(model => model.ODD_HIGH).Titled("High House #").Sortable(sortable);
columns.Add(model => model.SIDE).Titled("Side").Sortable(sortable);

Я предполагаю, что мне нужно сделать это с помощью скрипта, но я не уверен, как динамически получить доступ к строкам и полям.

1 Ответ

0 голосов
/ 27 февраля 2019

Я не вижу необходимости в динамической сетке данных в сценарии, который вы описали.

При использовании MVC рекомендуется использовать объект ViewModel для представления данных.Таким образом, ваш контроллер отвечает за получение данных из уровня вашего бизнеса / сервиса и отображение результата на ваш объект ViewModel.

Используя этот подход, вы можете создать объект со свойствами вашего представления и просто привязать его к вашемуgridview и другие элементы управления.

Ваш объект ViewModel будет выглядеть следующим образом:

public class MyViewModelItem {
    public int LowHouse { get; set; }
    public int HighHouse { get; set; }
    public char Side { get; set; }
}

public class MyViewModel {
    // Your other view's properties

    public List<MyViewModelItem> List { get; set; }
}

А ваш контроллер будет выглядеть так:

public class MyController : Controller {
    private readonly IMyService myService;

    public MyController()
    {
        myService = new MyService(); // Consider Dependency Injection
    }

    public ActionResult Index() {
        var data = myService.List();
        var myModel = MapMyModel(data);

        return View(myModel);
    }

    private MyViewModel MapMyModel(IEnumerable<YOUR_ENTITY> data) {
        var myModel = new MyViewModel();
        myModel.List = new List<MyViewModelItem>();

        foreach (var item in data)
        {
            myModel.List.Add(new MyViewModelItem {
                LowHouse = item.ODD_LOW,
                HighHouse = item.ODD_HIGH,
                Side = [your logic]
            })
        }
    }
}

Ссылки:

  1. Использование ViewModels для управления данными и организации кода в приложениях ASP.NET MVC
  2. ASP.NET MVC Просмотр образцов моделей
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...