剑道网格在剑道标签使用部分视图

本文关键字:视图 用部 标签 网格 | 更新日期: 2023-09-27 18:10:43

出于某种原因,我可以获得第二个选项卡(产品详细信息)来绑定网格中的记录,尽管GetAllProductList返回记录。请告知,谢谢。

index.cshtml 家庭/Index.cshtml

@(Html.Kendo().TabStrip()
    .Name("tabstrip")
    .Items(items =>
    {
        items.Add().Text("Search")
            .LoadContentFrom("Index", "ProductDetails")
            .Selected(true);

        items.Add().Text("Product Details")
       .LoadContentFrom("_ProductData", "ProductDetails")

    })
)

ProductDetails/Index.cshtml

@ (Html.Kendo () .Grid ()

        .Name("BookGrid")
        .HtmlAttributes(new { @Style = "align:center; font-size:10px; width:950px" })
        .Columns(columns =>
        {
            columns.Bound(p => p.BookId).Width(95);
            columns.Bound(p => p.Name).Width(120);

        })
        .ToolBar(toolbar => toolbar.Create())
        .Sortable()
            //.Pageable()
        .Pageable(paging => paging
            .Input(false)
            .Numeric(true)
            .PreviousNext(true)
            .PageSizes(new int[] { 5, 10, 25, 50 })
            .Refresh(false)
        )
        .Selectable()
        .Scrollable()
        .ColumnMenu(c => c.Columns(false))
        .DataSource(dataSource => dataSource
            .Ajax()//bind with Ajax instead server bind
            .PageSize(10)
            .ServerOperation(true)
                .Model(model =>
                {
                    model.Id(p => p.BookId);
                })
                                     .Sort(sort => sort
                                  .Add(x => x.Name).Descending())
                        .Read(read => read.Action("GetBookData", "ProductDetails").Type(HttpVerbs.Get))

            )

    )

ProductDetails/_ProductData。chtml (Partial page)

@(Html.Kendo().Grid<HH.PrductModel>()
        .Name("ProductGrid")
        .HtmlAttributes(new { @Style = "align:center; font-size:10px; width:950px" })
        .Columns(columns =>
        {
            columns.Bound(p => p.ProductId).Width(95);
            columns.Bound(p => p.Name).Width(120);

        })
        .ToolBar(toolbar => toolbar.Create())
        .Sortable()
            //.Pageable()
        .Pageable(paging => paging
            .Input(false)
            .Numeric(true)
            .PreviousNext(true)
            .PageSizes(new int[] { 5, 10, 25, 50 })
            .Refresh(false)
        )
        .Selectable()
        .Scrollable()
        .ColumnMenu(c => c.Columns(false))
        .DataSource(dataSource => dataSource
            .Ajax()//bind with Ajax instead server bind
            .PageSize(10)
            .ServerOperation(true)
                .Model(model =>
                {
                    model.Id(p => p.ProductId);
                })
                                     .Sort(sort => sort
                                  .Add(x => x.Name).Descending())
                        .Read(read => read.Action("GetProductData", "ProductDetails").Type(HttpVerbs.Get))

            )

    )
**ProductDetailscontroller**
public ActionResult Index()
{ 
   return View();
} 
///Display for tab 1
public ActionResult GetBookData ([DataSourceRequest] DataSourceRequest request)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
            return Json(GetAllBookList().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
 private static IEnumerable<BookModel> GetAllBookList()
        {
            using (var dc = new HHEntities())
            {
                var result = (from a in dc.Books
                              select new BookModel
                              {
                                  BookId= a.BookId,
                                  Name= a.Name

                              });
                return result.Distinct().ToList();
            }

        }

///Display for tab 2
public ActionResult GetProductData([DataSourceRequest] DataSourceRequest request)
{
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            return Json(GetAllProductList().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }

下面将返回记录,但由于某种原因,它将绑定到Product details选项卡

中的网格
       /// <summary>
        /// </summary>
        /// <returns></returns>
        private static IEnumerable<ProductModel> GetAllProductList()
        {
            using (var dc = new HHEntities())
            {
                var result = (from a in dc.Products
                              select new ProductModel
                              {
                                  ProductId= a.ProductId,
                                  Name= a.Name,
                                  Description= a.Description,
                                  ExpiryDate= a.ExpiryDate

                              });
                return result.Distinct().ToList();
            }

        }
    public ActionResult __ProductData()
  { return PartialView();}

剑道网格在剑道标签使用部分视图

我怀疑问题是两个网格都用相同的HTML id属性呈现(通过Name()方法设置)。您需要为您的网格提供唯一的名称。例如,您可以将ViewData中的一些索引放在渲染包含网格的部分视图的动作方法中。然后在分部视图本身中使用该索引使网格名称唯一:

@(Html.Kendo().Grid<HH.PrductModel>()
      .Name("Product" + ViewData["index"])