0

私はWebベースのアプリケーション開発にかなり慣れていません。dojoツールキットでASP.NetMVC4を使用しています。私の要件は、データをキャプチャするための特定のテキストボックスと、表形式の特定の詳細をキャプチャするための1つの道場グリッドがあるようなものです。そのため、ItemFileWriteStoreでDojoグリッド(http://dojotoolkit.org/api/1.8/dojox/grid/DataGrid )を使用しています。私の見解は以下のようです(私はかみそりを使用しています)

@using (Html.BeginForm("CreateNewData", "Home", FormMethod.Post, new { id = "myForm" }))
{

    <div class="controlWrapper">
        <div class="controlLabel">
            @Html.DisplayNameFor(model => model.Name)
        </div>
        <div class="controlValue">
            @Html.TextBoxFor(model => model.Name)
        </div>
    </div>
<div class="controlWrapper">
        <h4>
            Table Items</h4>
        <div id="myGrid">
        </div>
         <div id="addRemoveMode">
            <button data-dojo-type="dijit.form.Button" id="addButton" onclick="addRecord()">
                Add</button>
            <button data-dojo-type="dijit.form.Button" id="removeButton" onclick="removeRecord()">
                Remove Selected Rows
            </button>
        </div>
    </div>
}

グリッドを作成するための私のJavaスクリプトは次のようなものです

require(["dojo/ready",
         "dojox/grid/DataGrid",
         "dojo/data/ItemFileWriteStore",
         "dojo/json",
         "dojo/query",
         "dijit/form/TextBox"
        ], function (ready, DataGrid, ItemFileWriteStore, Json, query, TextBox) {
            ready(function () {

                var layout = [[
                { name: 'ID', field: 'ID', hidden: true },
                { name: 'Label', field: 'Label', width: '10%', editable: true },
                { name: 'Position', field: 'Position', width: '10%', editable: true }
                    ]];

                    var attCodeData = {
                                    identifier: 'ID',
                                    items: []
                                };
                console.log(globalVar);
                attCodeData["items"] = globalVar;

                myStore= new ItemFileWriteStore({ data: attCodeData })

                myGrid= new DataGrid({
                    store: myStore,
                    structure: layout,
                    rowSelector: '20px'
                },"divGrid");

                myGrid.startup();
}

私の問題は、グリッドがフォーム内にあるため、行を追加または削除するたびに、フォームに記載されているPostメソッドにページが送信されることです。一緒に処理できるように、データ全体を投稿する必要があります。そこで、グリッドをフォームの外に移動しました。今、私はデータ全体(テキストボックスとグリッドのデータを一緒に)をキャプチャしてコントローラーメソッドに送信する方法を混乱させています。私を助けてください。

4

1 に答える 1

0

ページ全体が Post メソッドに送信されないようにするには、データの送受信に ajax ソリューションを使用する必要があります。

これを見てみましょう: Dojo DataGrid、JsonRest Store、Entity Framework、SQL Server、ASP.NET MVC Web API を使用した「CRUD 操作」を含む DataGrid ビュー、 およびこれ: dojo/request を使用した Ajax。彼らが助けてくれることを願っています。

于 2013-09-25T19:53:25.550 に答える