Извинения, если заголовок расплывчатый - я объясню как можно более подробно проблему.
У меня есть веб-страница 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.