我现在有一个数据集,该数据集有4列值,可以将它们称为奇数低,奇数高和偶数低,偶数高,并且我想在网格中有两列(低和高),并根据的值设置值另一列,简称为“ 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);
我的猜测是,我需要使用脚本来完成此操作,但是我不确定如何动态访问行和字段。
答案 0 :(得分:0)
在您描述的情况下,我看不到需要动态数据网格。
使用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]
})
}
}
}
参考文献: