私のasp.net MVC 4アプリケーションには、2つの剣道UIグリッドを持つビューがあります。そのうちの 1 つには、製品とその属性のリストが含まれています。もう一方にはまったく同じ列が必要ですが、空です。
最初のグリッドで行を選択すると、最初のグリッドから削除され、2 番目のグリッドに追加されます。また、2 番目の行から行を削除して、最初の行に追加できるようにしたいと考えています。それを達成する方法がわかりません。ここに私の質問に対する答えがありますが、Kendo UI asp.net MVC ラッパーを使用してこれを実装できるようにしたいと考えています。
次のような ViewModel があります。
public class SelectProductsViewModel
{
public IEnumerable<Product> Products { get; set; }
public IEnumerable<Product> SelectedProducts { get; set; }
}
私のコントローラーアクションは次のようになります。
public ActionResult SelectProducts()
{
var viewModel = new SelectProductViewModel
{
Products = GetProducts(), // Get Products form the database
SelectedProducts = new List<Product>()
}
return View(viewModel);
}
そして、これが私のビューにあるものです:
@(Html.Kendo().Grid(Model.Products)
.Name("productsgrid")
.Columns(columns =>
{
columns.Bound(p => p.ProductName);
columns.Bound(p => p.Color);
columns.Bound(p => p.Size);
columns.Bound(p => p.Price);
})
.Pageable()
.Sortable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetProducts", "Product"))
.Model(model =>
{
model.Id("ProductID");
})
)
)
@(Html.Kendo().Grid(Model.SelecteProducts)
.Name("selectedproductsgrid")
.Columns(columns =>
{
columns.Bound(p => p.ProductName);
columns.Bound(p => p.Color);
columns.Bound(p => p.Size);
columns.Bound(p => p.Price);
})
.Pageable()
.Sortable()
.Filterable()
.DataSource(dataSource => new DataSource())
)