У меня есть связанный с данными элемент управления GridView, в котором я могу отключить отдельные ячейки на основе роли пользователя. Это работает только на первой странице.С элементом управления ASP.NET GridView, как отключить элементы управления или отдельные ячейки в GridViewRow после PageIndexChanged?
private void LimitAccessToGridFields()
{
if (User.IsInRole("Processing")) return;
foreach (GridViewRow gridViewRow in gvScrubbed.Rows)
{
var checkBox = ((CheckBox) gridViewRow.FindControl("cbScrubbed"));
checkBox.Enabled = false;
// ButtonField does not have an ID to FindControl with
// Must use hard-coded Cell index
gridViewRow.Cells[1].Enabled = false;
}
}
Я вызываю этот метод на странице_Load, где он работает. Я пробовал его в обработчиках событий PageIndexChaging и PageIndexChanged, где он не работает. Во время отладки, кажется, успешно установлено значение Enabled равным false в обоих элементах управления в строке. Моя цель - отключить эти поля, в зависимости от роли пользователя, после изменения страницы. Как это должно быть достигнуто?
Нет. Он НЕ должен находиться внутри события RowDataBound. Кроме того, не все средства управления GridView полагаются на источник данных. – Fandango68