• Привет, Гость!
  • Войти
  • Регистрация
  • Записи
  • Форумы
  • Люди
  • Файлы
  • Работа
  • Технологии

Как отменить выполнение "Update"

Все форумы  Поиск  Правила  Помощь 
 Активные темы  Темы без ответов
Привет, гость! Войти
Форумы GotDotNet.Ru » ASP.NET WebForms » Как отменить выполнение "Update"
Страницы: 1
RSS
Как отменить выполнение "Update"
cronwerk
Сообщений: 37 Регистрация: 20.04.2009
#1
26.02.2010 10:48
Здраствуйте!
Есть такой вопрос:
На форме имеется GridView. В качестве источника данных используется SqlDataSource.
Мне нужно сделать так, чтобы определённые записи нельзя было редактировать
В связи с этим "простых" решений вижу 2
Первое это обработать RowCommand на Edit (на мой взгяд предпочтительней т.к. дело не доходит до режима редактирования строки т.е когда появляются TextBox'ы)
и второй вариант отловить на команде Update.
Но появляется такая проблема:
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {                      
        if (e.CommandName == "Update" или "Edit")
        {
            /* Делаем проверку можно править или нет */
            if(.......)
            {
                /* Если эту запись править нельзя */
                То ЧТО ДЕЛАТЬ????????????
            }
        }
    }
Zorina Fan-club :)
 
 
Zorina
Сообщений: 3035 Регистрация: 15.10.2003
#2
26.02.2010 11:09
/* Если эту запись править нельзя */
e.Cancel=true;

Но если пользователям что-то нельзя редактировать, то лучше и не показывать кнопку Edit. До нее вы можете добраться, подписавшись на GridView.RowDataBound, или же если вы используете TemplateColumns, прямо в разметке добавить услови по которому делать кнопку Edit невидимой.
http://asp.net/learn/data-access/ Ищи там где потерял, а не там где светло.
 
 
cronwerk
Сообщений: 37 Регистрация: 20.04.2009
#3
26.02.2010 11:21
Спасибо за ответ!
но Ваше решение
Цитата
Zorina:не показывать кнопку Edit
мне нравится больше...

Я использую TemplateColumns тогда уж заодно не подскажите каким образом это релизовать:
Цитата
прямо в разметке добавить услови по которому делать кнопку Edit невидимой.
Пожалуйста... :)
Zorina Fan-club :)
 
 
Zorina
Сообщений: 3035 Регистрация: 15.10.2003
#4
26.02.2010 12:08
<asp:TemplateField>
<ItemTemplate>
 <asp:Button ID="btnEdit" runat="server" Text="Edit" Visible='<%# (bool)Eval("isVisible") %>'/>
</ItemTemplate>
</asp:TemplateField>


Это пример, где isVisible это имя булевого поля или свойства объекта из списка который вы привязываете к гриду:)
Это выражение можно заменить на вызов метода, который возвращает true/false, проанализировав условие.
Что у вас является условием для возможности редактирования?
http://asp.net/learn/data-access/ Ищи там где потерял, а не там где светло.
 
 
cronwerk
Сообщений: 37 Регистрация: 20.04.2009
#5
26.02.2010 13:35
Поставить дополнительное поле isVisible решило бы проблему если бы использовался другой источник данных, например DataTable,
тогда бы я добавили это поле, в коде сделал проверку и присвоил занчение этому полю в зависимости от результата проверки.
Но у меня используется SqlDataSource...
Поэтому ИМХО добавлять поле и делать проверку условия надо через SQL запрос. Что не очень хорошо.
Видимо буду делать через RowDataBound.
Zorina Fan-club :)
 
 
Zorina
Сообщений: 3035 Регистрация: 15.10.2003
#6
26.02.2010 13:48
1. добавлять поле не нужно.
2. про условие проверки вы так и не ответили.
http://asp.net/learn/data-access/ Ищи там где потерял, а не там где светло.
 
 
cronwerk
Сообщений: 37 Регистрация: 20.04.2009
#7
26.02.2010 14:24
Условие проверки: Редактирование запрещено если значение первого поля (ИД) = 1
Zorina Fan-club :)
 
 
Zorina
Сообщений: 3035 Регистрация: 15.10.2003
#8
26.02.2010 14:28
<asp:Button ID="btnEdit" runat="server" Text="Edit" Visible='<%# ((int)Eval("ID")!=1) %>'/> 


;)
http://asp.net/learn/data-access/ Ищи там где потерял, а не там где светло.
 
 
cronwerk
Сообщений: 37 Регистрация: 20.04.2009
#9
26.02.2010 14:43
Работет, спасибо! :)

Где про это узнали если не секрет? ;)
Zorina Fan-club :)
 
 
Zorina
Сообщений: 3035 Регистрация: 15.10.2003
#10
26.02.2010 15:12
долгие годы тренировок ;) msdn& по ссылке походите в моей подписи, там есть много познавательного. а еще есть хорошие видео на techdays.ru
http://asp.net/learn/data-access/ Ищи там где потерял, а не там где светло.
 
 
 
Страницы: 1
Форумы GotDotNet.Ru » ASP.NET WebForms » Как отменить выполнение "Update"
О сайте   Свяжитесь с нами   Версия для печати
Работает на 1С-Битрикс: Управление сайтом ASP.NET  |  Хостинг на Parking.Ru