6

私は Kendo UI にまったく慣れていないので、何かが足りないのかもしれませんが、docs API: http ://docs.kendoui.c​​om/api/framework/model を読んだ後、 Kendo は単一の ID でのみ動作するように制限されているようです。

たとえば、各行が値のペアで識別されるグリッドがあるとします (基礎となるデータにはそのような制約があるため)。ちゃんと読んだら、剣道でこれを素直に表現する方法はないの?

私が考えることができる1つの回避策は、「value1 | value2」(文字列)のようなエンコードされたIDであるアドホック値を作成し、UIからデータを取得するときにそれらをデコードすることです。

もっと明確な方法はありますか?

具体例

実質的なものに焦点を当てるには:

http://demos.kendoui.c​​om/web/grid/editing-inline.html

関連するコードは (.cshtml ファイルから):

.Model(model => model.Id(p => p.ProductID))

私の場合は次のようになります(私が考えることができる最も簡単な方法):

.Model(model => model.Id(p => p.ProductComboId1Id2))

ProductComboId1Id2上記のようにエンコードされた文字列です。

解決策(一種)

ページの下部を参照してください。Kendo のインストールに問題がありました。インストーラー スクリプトは重要な .js ファイルを 1 つもインストールせず、フレームワーク全体がおかしくなりました。私の問題は、それらの不正行為の1つでした。

4

2 に答える 2

12

1 つのグリッドで複数の ID を使用できます。以下に、それらを宣言するための構文と、javascript を介してそれらにアクセスする方法を含めました。

宣言

        .Model(model =>
        {
            model.Id(i => i.ProductID);
            model.Id(i => i.ProductID2);
        })

アクセスする

function GetIDs() {
var itemGrid = $("#GRIDNAME").data("kendoGrid");
var dataItem = itemGrid.dataItem($(this));
var ID1 = dataItem.ProductID;
var ID2 = dataItem.ProductID2;}

関数 GetID() は、行のコマンド列を介して次のようにグリッドで呼び出されます。

        columns.Command(command =>
        {
            command.Custom("Edit").Text("Edit").Click("GetIDs");
            command.Destroy();
        });
于 2012-10-28T16:33:26.813 に答える
0

これはインストール スクリプトのバグなのかどうかはわかりませんが、問題は Kendo インストーラーが重要なファイルを 1 つもインストールしなかったことです。つまり...

NuGet 経由Install-Package KendoIOWebKendoパッケージをインストールすると、ファイルはインストールされkendo.aspnetmvc.min.jsず、これは重要なファイルです。突然、削除の確認を取得し、ID は GET ではなく POST 経由で送信され (正確に構成した方法で)、アクションの後にページが表示されます。つまり、最終的には意味があります。

これを修正するには、コードをいじらずに、Kendo の Web サイトから手動で zip ファイルをダウンロードし、このファイルを取得して Content ディレクトリに配置します。

Kendo の NuGet インストーラーがこのような構造Content\kendo\2012.2.710を作成したので、以下はすべてのファイルです。この追加の .js ファイルをContent\kendoこのように配置すると、手動で追加したことを思い出します。

于 2012-10-28T19:19:13.037 に答える