Таблица данных JQuery не видна

У меня есть веб-приложение ASP.NET Core MVC, написанное на C#. Я создал представление Razor и в этом представлении показываю две таблицы данных jQuery по горизонтали, а между этими двумя таблицами данных есть 3 кнопки.

Эти элементы управления находятся в контейнере. Но при запуске приложения видна только граница - две таблицы данных не видны.

 @model LMD_WEB.ViewModels.vmStudentMaster
 @{
    Layout = null;
  }

  <style>
        .container {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        margin: 20px;
        }      

        .datagrid {
        flex: 1;
        margin: 10px;
        border: 1px solid black;            
         }

       .buttons {
        display: flex;
        flex-direction: column;
        justify-content: center;
        margin: 10px;
        }

        .buttons button {
            margin: 5px 0;
        }

       .footer-buttons {
        display: flex;
        justify-content: space-between;
         margin: 10px;
        }

       .textbox {
        margin: 10px;
        }

        .textbox input {
            width: 100%;
        }
    </style>

    <div class = "textbox">
        <input type = "text" placeholder = "Text box" />
    </div>

    <div class = "container">
        <div class = "datagrid" id = "datagrid1">
        <table id = "table1" class = "display table-bordered" 
               style = "width:100%">        
        </table>
    </div>
    <div class = "buttons">
         <button id = "button1">Button1</button>
         <button id = "button2">Button2</button>
         <button id = "button3">Button3</button>
    </div>
    <div class = "datagrid" id = "datagrid2">
         <table id = "table2" class = "display table-bordered" 
                style = "width:100%">
         </table>
    </div>
    </div>
    <div class = "footer-buttons">
         <button id = "buttonCancel">Cancel</button>
         <button id = "buttonOK">OK</button>
    </div>


   <script>

   $(document).ready(function () {
        $('#table1').DataTable();
        $('#table2').DataTable();
        LoadGrid1();
    });

   const LoadGrid1 = async () => {
    $("#DATATABLE1").DataTable({
        serverSide: true,
        filter: false,
        scrollY: StaticData.TABLE_HEIGHT + 'px',
        scrollX: true,
        lengthMenu: StaticData.TABLE_PAGE_SIZE,
        scrollCollapse: true,
        searchDelay: 800,
        ajax: {
            url: '/STUD_MANAGEMENT/LoadStuds',
            type: 'GET',
            datatype: 'json',
            data: (d) => { return { draw: d.draw, start: d.start, length: d.length, search: d.search.value, FilterByColumn: d.columns[d.order[0].column].data, ASC_DSEC: d.order[0].dir } },
            beforeSend: () => { ShowLoader(); },
            complete: () => { HideLoader(); },
            dataSrc: (json) => {
                json = json.data;
                _log(json);
                return json;
            }
        },
        columns: [
            { data: 'StudID', title: StudID', autoWidth: true },
            { data: 'StudCode', title: 'Stud Code', autoWidth: true },
            { data: 'ClassNo', title: 'Class No', autoWidth: true },
            { data: 'Teacher', title: 'Teachere', autoWidth: true },
            { data: 'Remarks', title: Remarks', autoWidth: true },
                ],
        columnDefs: [
            { className: 'text-center', targets: [0, 2, 4] },
        ],
       });
    }

    </script>

Как сделать эти две таблицы данных видимыми в этом представлении Razor?

Добро пожаловать в Stack Overflow. Пожалуйста, предоставьте подробную информацию с вашей отображаемой страницы. Видите ли вы какие-либо ошибки в консоли? Пожалуйста, предоставьте минимально воспроизводимый пример.

Twisty 08.07.2024 03:25
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Боюсь, это связано с тем, что код js не выполняется. Вы упомянули, что работаете в приложении ASP.NET Core MVC, поэтому скрипты должны быть окружены @section Scripts{}. Тем временем в ваших фрагментах кода возникли некоторые проблемы. Вы отображали содержимое таблицы не для table1 и table2, а только для DATATABLE1. И в любом случае вы пропустили title: StudID' и title: Remarks', пожалуйста, посмотрите мой тест с кодами ниже. HTML-элемент и стили такие же, как и в вашем фрагменте кода.

@section Scripts{
    <link rel = "stylesheet" href = "https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" />
    <script src = "https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>

    <script>

        $(document).ready(function () {
            $('#table1').DataTable({
                ajax: {
                    "url": "/table/LoadStuds",
                    "type": "GET",
                    "dataSrc": function (myJson) {
                        console.info(myJson)
                        return myJson;
                    }
                },
                columns: [
                    { data: 'studID', title: 'StudID', autoWidth: true },
                    { data: 'studCode', title: 'Stud Code', autoWidth: true },
                    { data: 'classNo', title: 'Class No', autoWidth: true },
                    { data: 'teacher', title: 'Teachere', autoWidth: true },
                    { data: 'remarks', title: 'Remarks', autoWidth: true },
                ]
            });
            $('#table2').DataTable();
        });
    </script>
}


public class TableController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public List<Student> LoadStuds() {
        var list = new List<Student> {
            new Student{ StudID = "1",StudCode = "1001",ClassNo = "A",Teacher = "David",Remarks = "good"},
            new Student{ StudID = "2",StudCode = "1002",ClassNo = "A",Teacher = "David",Remarks = "perfect"},
            new Student{ StudID = "3",StudCode = "1003",ClassNo = "B",Teacher = "Yang",Remarks = "bad"},
            new Student{ StudID = "4",StudCode = "1004",ClassNo = "A",Teacher = "David",Remarks = "bad"}
        };
        return list;
    }
}

public class Student {
    public string StudID { get; set; }
    public string StudCode { get; set; }
    public string ClassNo { get; set; }
    public string Teacher { get; set; }
    public string Remarks { get; set; }

}

Я получаю пустую таблицу данных после использования приведенного выше кода ??? Я что-то пропустил??

KitKat 08.07.2024 12:08

Я тестирую приложение MVP, поделился своим контроллером и моделью, которую использовал. Я использовал ваш HTML и стиль.... Не могли бы вы создать новый контроллер и новое представление, а затем протестировать его с моими кодами? И, возможно, вы могли бы предоставить минимальный образец для воспроизведения проблемы.

Tiny Wang 08.07.2024 12:10

Другие вопросы по теме