Создание редактируемого элемента управления перетаскиванием на основе данных сводной таблицы
Использование ASP.NET веб-форма (и C#) мне нужно отобразить сумму отработанных часов, сгруппированных по описанию фазы, описанию задачи и Хронометристу. Затем клиент хотел бы иметь возможность редактировать, перетаскивать линейные элементы в сетке/таблице, отображаемой на веб-странице.
Проблема, с которой я столкнулся, заключается в том, как создать gridview/listview/datarepeater или какой-либо другой элемент управления, который обеспечивает редактирование (обновление записи таблицы базы данных) и функцию перетаскивания.
База данных будет выглядеть следующим образом:
Идентификатор Itemid PhaseDescription TaskDescription TimeKeeperId HoursWorked EmployeeName
20 Фаза Девятая Задача Четвертая 3090 11.5 Бартоло, Лорен
15 Фаза Девятая Задача Девяносто Два 3232 7.3 Андерсон,Марта
1 Фаза Одна Задача Одна 3338 1 Аринист, Даниил
19 Фаза Первая Задача Первая 3090 60 Бартоло, Лорен
5 Фаза Первая Задача Семь 1930 10.8 Ванденкирк, Дэвид
16 Фаза Первая Задача Тринадцать 831 10 Каннингем, Лоуренс
Сводные данные SQL выглядят следующим образом
Поэтапное Описание TaskDescription Амелия Винсент Лоуренс Каннингем Сэл Битумус Дэвид Ванденкирк Лорен Бартоло Марта Андерсон Даниэль Аринист Всего Часов Всего Сборов
Девять задач этапа четыре нуль нуль нуль нуль нуль нуль 11.5 11.5 0
Девять задач фаза нуль нуль нуль нуль нуль девяносто два нуль 7.3 7.3 0
Фаза первая задача один нуль нуль нуль 60 нуль нуль 61 650
Фаза первая задача один нуль нуль нуль нуль нуль 1 61 650
Одна из задач этапа семь нуль нуль нуль нуль нуль нуль 10.8 10.8 0
Что я уже пробовал:
На данный момент я смог вернуть свои данные с помощью сводной таблицы SQL и создать свои групповые итоги В C#, но я не могу придумать способ фактически отредактировать данные ячейки в пользовательском интерфейсе и с помощью уникального ключа для этой ячейки (соответствующего первичному ключу в таблице базы данных) обновить базу данных. Поле DataKeyName для строки вообще не работает в GridView, и поскольку каждая строка может иметь 1-10 столбцов, и каждый может иметь часы, о которых сообщается, у меня есть потенциал для 1-10 первичных ключей при обновлении этой строки.
Кроме того, я могу вернуть плоские данные из SQL и создать сводную таблицу для отображения в виде сетки – но опять же я не вижу способа редактировать/перетаскивать содержимое ячейки.
Я буду очень признателен за любые идеи о том, как выполнить просьбу моего клиента.
Мне интересно, есть ли какие-либо другие элементы управления, которые могли бы выполнить это ... или какой-то способ создать сетку программно, не используя сводный источник данных.
Я использую VS2013, SQL 2012 и ASP.NET C# 4.5
ZurdoDev
Похоже, что ваша первая проблема заключается в том, чтобы найти элемент управления, который позволяет вам делать то, что вы хотите. Весь ваш дизайн БД и т. д. не имеет отношения к делу. Существует множество элементов управления, которые позволяют перетаскивать элементы управления, а также плагин jquery ui drag and drop для добавления перетаскивания к любому элементу управления. Хотя я не знаю, как заставить его работать в сетке.
Итак, сначала решите, какой контроль вам нужен, и идите оттуда.