ASP. NET Razor Pages - Datatables On Post - PullRequest
       10

ASP. NET Razor Pages - Datatables On Post

0 голосов
/ 07 апреля 2020

Я ищу возможный пример публикации данных из таблиц данных с надеждой в коде OnPost ().

У меня есть таблица, из которой я могу добавлять / удалять строки. Что я хочу, так это как только пользователь отправит форму, которую я хочу, чтобы иметь возможность анализировать строки и манипулировать данными. Вот что у меня так далеко. Я могу разместить больше кода, если это необходимо.

function loadList() {
    partTable = $('#partTable').DataTable({
        "processing": true,
        "serverSide": true,
        'ajax': {
            'type': 'POST',
            'contentType': "application/json",
            'url': 'WHATDOIPUTHERE',
            'data': function (d) {
                console.log(JSON.stringify(d));
                return JSON.stringify(d);
            }
        },
        "drawCallback": function (settings) {
            alert('DataTables has redrawn the table');
        }
    });
    AssemblyTable = $('#assemblyTable').DataTable({});
}

var PartVisible;
var PartName;
var AssemblyName;

function setPartName(sel) {
    PartName = sel.options[sel.selectedIndex].text;
}

function setAssemblyName(sel) {
    AssemblyName = sel.options[sel.selectedIndex].text;
}

function CheckPartInput() {
    var partId = document.getElementById("selectPart").value;
    if (partId != "-- Select Part --") {
        if (PartNumberArray.length == 0) {
            var row = [PartName, "<input type=\"number\" id=\"" + partId + "PartCount \" />", "<button id=\"" + partId + "\" class=\"btn btn-danger\" type=\"button\" onclick=\"RemovePart('" + PartName + "')\" >Remove</button>"]
            PartRows.push(row);

            partTable.row.add([row[0], row[1], row[2]]).draw();
            PartNumberArray.push(partId);
            toastr.success("Part added");
        }
        else {
            if (PartNumberArray.includes(partId)) {
                toastr.error("Part is already part of assembly");
            }
            else {
                var row = [PartName, "<input type=\"number\" id=\"" + partId + "PartCount \" />", "<button id=\"" + partId + "\" class=\"btn btn-danger\" type=\"button\" onclick=\"RemovePart('" + PartName + "')\" >Remove</button>"]
                PartRows.push(row);

                partTable.row.add([row[0], row[1], row[2]]).draw();

                PartNumberArray.push(partId);
                toastr.success("Part added");
            }
        }
    }
    else {
        toastr.error("No part was selected or another error occured");
    }
}

HTML

<select id="selectPart"
        class="selectpicker dropdown mb-3"
        data-live-search="true"
        data-size="10"
        data-dropup-auto=true
        onchange="setPartName(this)">
    <optgroup label="Default">
        <option>-- Select Part --</option>
    </optgroup>
    <optgroup label="Parts">
        @foreach (var part in Model.PartList)
        {
            <option value="@part.Id">@part.PartName</option>
        }
    </optgroup>
</select>
<button type="button" class="btn btn-success mb-3" onclick="CheckPartInput()">Add Part to Assembly</button>

<div class="container-fluid card mb-4">
    <div class="card-header"><i class="fas fa-table mr-1"></i>Part List</div>
    <div class="card-body">
        <div class="table-responsive">
            <table class="table table-bordered" id="partTable" width="100%" cellspacing="0">
                <thead>
                    <tr>
                        <th>Part Name</th>
                        <th>Reqired Count</th>
                        <th></th>
                    </tr>
                </thead>
                <tbody id="partContainer">
                </tbody>
                <tfoot>
                    <tr>
                        <th>Part Name</th>
                        <th>Reqired Count</th>
                        <th></th>
                    </tr>
                </tfoot>
            </table>
        </div>
    </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...