0

Kendo UI を使用した net mvc4 プロジェクト iam は単純な ajax グリッドを使用してデータベースから値を出力しますが、私のコードはグリッドに表示されません

<%: Html.Kendo().Grid<CustomerTest.Models.ProductViewModel>()
   .Name("grid")
      .DataSource(dataSource => dataSource
          .Ajax()
          .Read(read => read
                   .Action("Printc", "Home") // Set the action method which will return the data in JSON format
              // .Data("productsReadData") // Specify the JavaScript function which will return the data
          )
      )
      .Columns(columns =>
      {
          columns.Bound(product => product.CustomerID);
          columns.Bound(product => product.CustomerFName);
          columns.Bound(product => product.CustomerLName);
      })
      .Pageable()
      .Sortable()
%>

そして私の行動方法は

 public ActionResult Printc()
    {
       // ViewBag.Message = "Welcome to ASP.NET MVC!";

        return View(GetCustomers());
    }

    private static IEnumerable<ProductViewModel> GetCustomers()
    {
        var northwind = new CustomerLinqDataContext();
        var purchCount = northwind.Customer_details.Count();
        return northwind.Customer_details.Select(product => new ProductViewModel
        {
           CustomerID   = product.ID,
             CustomerFName = product.name,
             CustomerLName = product.lname,
             CustomerAge = product.age 

        });
    }

私が間違っていることを教えてください。ページヘッダーにモデルを渡そうとしました

 <%@ Page Title="" Language="C#" MasterPageFile="~/Areas/aspx/Views/Shared/Web.Master" 
    Inherits="System.Web.Mvc.ViewPage<IEnumerable<CustomerTest.Models.ProductViewModel>>" %> 

それはうまくいきましたが、私の単一のページに複数のグリッドがあり、それらは異なるテーブルから来ているので、各モデルを別々に渡したいのです。誰かがこのコードで私を助けてくださいありがとう

4

2 に答える 2

1

問題は Printc メソッドにあります。Kendo Grid 用に作成された Json オブジェクトを返す必要があります。

public ActionResult Index_Printc([DataSourceRequest] DataSourceRequest request)
{
    return Json(GetCustomers().ToDataSourceResult(request));
}

私の側では、Ajax リクエストで ID を指定します。読み取りリクエストに必須かどうかはわかりませんが、メソッドの更新が機能しない場合は、これを追加します。

<%: Html.Kendo().Grid<CustomerTest.Models.ProductViewModel>()
   .Name("grid")
      .DataSource(dataSource => dataSource
          .Ajax()
          .Model(model => model.Id(p => p.CustomerID))
          .Read(read => read.Action("Printc", "Home") 
          )
      )
      .Columns(columns =>
      {
          columns.Bound(product => product.CustomerID);
          columns.Bound(product => product.CustomerFName);
          columns.Bound(product => product.CustomerLName);
      })
      .Pageable()
      .Sortable()
%>

それが役に立てば幸い !

于 2013-11-08T09:27:48.683 に答える
0

同じページに複数のグリッドがある場合は、それらの名前が一意であることを確認し、すべてがグリッドと呼ばれないようにしてください。

于 2013-11-08T09:25:38.083 に答える