Эффективный способ отображения результатов хранимой процедуры с помощью колонок с интерактивными кнопками - PullRequest
0 голосов
/ 02 июля 2019

Извинения, если заголовок расплывчатый - я объясню как можно более подробно проблему.

У меня есть веб-страница ASP.NET, которая запрашивает базу данных TSQL с помощью хранимой процедуры, запрос выполняетсяPage_Load.Процедура возвращает набор данных (со столбцом ID, RequestID).По сути, это список запросов, относящихся к данным, которые должны быть одобрены или отклонены как исключения из другого рабочего процесса (не совсем уместно, но может помочь объяснить мой подход)

Я хотел бы отобразить результаты этогопроцедура в сетке (в настоящее время это достаточно просто), однако я сталкиваюсь с проблемами при попытке добавить кнопки, которые позволяют пользователю взаимодействовать с данными, например, я хотел бы кнопки «Отклонить / одобрить».

Когда нажата одна из этих кнопок, будет запущена соответствующая хранимая процедура, в которой в качестве параметра будет передан RequestID строки.Идея состоит в том, чтобы хранимая процедура обновляла журнал аудита и обновляла соответствующие таблицы соответствующим образом (каждый запрос представляет собой сложный объект данных, охватывающий несколько таблиц) - по этой причине элементы управления по умолчанию не достаточны для выбора / редактирования / удаления.

Мне кажется, что я делаю это совершенно неправильно из-за базового подхода, который использует сетку и пытается добавить пользовательские SelectMethod / DeleteMethod's.Каков наилучший практический подход для этого?

РЕДАКТИРОВАТЬ *

Вот таблица данных и то, как я ее заполняю:

DataTable Requests = new DataTable();
Requests = GetRequests(connString); //Method that returns a datatable from a stored procedure

Отображение данныхв виде сетки следующим образом:

gridView.DataSource = Requests;
gridView.DataBind();

Однако, когда я добавляю следующий код, который я пытаюсь запустить пользовательский метод при использовании элементов управления выбора / удаления по умолчанию в виде сетки, я получаю исключение:

gridView.AutoGenerateDeleteButton = true;
gridView.AutoGenerateSelectButton = true;
gridView.SelectMethod = "ApproveRequest";
gridView.DeleteMethod = "RejectRequest";

Вот пример (который имеет смысл, но заставляет меня думать, что я поступаю неправильно).

Message=DataSource or DataSourceID cannot be defined on 'gridView' when it uses model binding.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...