1

Json Resultを使用してテーブルを表示していますが、結果を表示すると正常に機能しています。ここで、並べ替え機能を追加したかったので、canSort:trueプロパティを使用しました。しかし、並べ替えを行うためにテーブルのヘッダーをクリックすると、ブラウザに以下のエンコードされた文字列が表示されます。これも並べ替えられているように見えますが、何らかのエンコードが行われています。次のようになります。

{"Data":"\u003ctable class=\"paramCustomDataTable\"\u003e\u003cthead\u003e\u003ctr class=\"customHead\"\u003e\u003cth scope=\"col\"\u003e\u003ca href=\"/Parameters/CustomData?id=7&sort=Name&sortdir=ASC\"\u003eName\u003c/a\u003e\u003c/th\u003e\u003cth scope=\"col\"\u003e\u003ca href=\"/Parameters/CustomData?id=7&sort=Value&sortdir=DESC\"\u003eDataValue\u003c/a\u003e\u003c/th\u003e\u003cth scope=\"col\"\u003eDelete\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003eNewdata\u003c/td\u003e\u003ctd\u003e123456\u003c/td\u003e\u003ctd\u003e\u003ca href=\u0027delete/5\u0027\u003eDelete\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e"}

著作権の問題のために実際の列を削除しなければならなかったので、以下のコードにいくつかの矛盾があるかもしれないことを私は知っています。


C# code
[CacheControl(HttpCacheability.NoCache), AcceptVerbs(HttpVerbs.Get)]
 public JsonResult GetMyData(int id)      {
            var result = _myRepository.GetmyDataWithId(id).ToList();
            var grid = new WebGrid(result, rowsPerPage: 5, canSort:true);
            var htmlString = grid.GetHtml(
                                          columns: grid.Columns(
                                              grid.Column("Name", "Name"),
                                              grid.Column("Value", "DataValue"),                                              
                                              ));
        return Json(new
        {
           Data = htmlString.ToHtmlString()
        }
        , JsonRequestBehavior.AllowGet);
    }

Javascriptコード

 $.getJSON('@Url.Action("GetMyData")', { id: 1 }, function (result) {
                var customDataList = $('#grid');
                customDataList.empty();
                customDataList.append(result.Data);
            });
4

2 に答える 2

0

これを見てください:

http://demos.telerik.com/aspnet-mvc/grid

于 2012-03-12T12:32:26.993 に答える
0

ASP MVC 4 では、次の IQueryable Support を実行できます

次のクールな機能は、IQueryable のサポートです。必要に応じて、API アクションから「プレーンな」IEnumerable オブジェクトを返す代わりに、IQueryable を返すことができます。なんで?

ASP.NET MVC アプリケーションでページングと並べ替えを実装したときのことを思い出してください。原因は考えられますが、多くの手作業が必要でした。アクションは追加のパラメーターで拡張する必要があり、コードはそれらのパラメーターを尊重し、必要なデータの正確な部分を返す必要があります。並べ替えと同じ話。Web API では、はるかに簡単です。

署名と戻り値の型を IQueryable に変更します。

public IQueryable<Product> Get()
{
    return _storage.AsQueryable();
}

これで、Web API がそのようなメソッドを認識した場合、Open Data Protocol (OData) クエリ文字列パラメーターを使用してアクセスできるようになります。OData は、次のクエリをサポートしています: $filter、$orderby、$skip、$top。

今、私がリクエストを行うと:

**http://localhost:5589/api/products?$top=3**

上位3点の商品をお届けします。または、

**http://localhost:5589/api/products?$skip=2&$top=3**

2 を飛ばして 3 を休ませます。要するに、IQueryable と 4 つの OData クエリ パラメーターを使用すると、以前はより多くの時間を要していた作業をはるかに簡単に行うことができます。

于 2012-03-22T15:24:03.040 に答える