Я хочу отменить редактирование строки во время RowEditing
, если текущий пользователь не имеет необходимых разрешений.
Вот как RowEditing
выглядит:
protected void GridView_RowEditing(object sender, GridViewEditEventArgs e)
{
string user = GetCurrentUser();
if (user == string.Empty)
{
/* Show message alert */
return;
}
GridView.EditIndex = e.NewEditIndex;
BindData();
}
Это отменяет Обновление , и столбец продолжает ссылку Редактировать .Но если я снова нажму Изменить , появится сообщение об ошибке:
Не удалось загрузить состояние просмотра.Дерево управления, в которое загружается состояние просмотра, должно соответствовать дереву управления, которое использовалось для сохранения состояния просмотра во время предыдущего запроса.Например, при динамическом добавлении элементов управления элементы управления, добавленные во время обратной передачи, должны соответствовать типу и положению элементов управления, добавленных во время первоначального запроса.
Я предполагаю, что это необходимо при скрытии элементов управления передвыполняется обратная передача.
Итак, мой вопрос, как мне избежать этого?
Я также пытался установить GridView.EditIndex = -1
, но я получаю те же результаты:
protected void GridView_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView.EditIndex = e.NewEditIndex;
BindData();
string user = GetCurrentUser();
if (user == string.Empty)
{
/* Show message alert */
GridView.EditIndex = -1;
BindData();
return;
}