27.12.2003, 08:37 | #1 |
Участник
|
Возможно ли сделать так, чтобы одна строка из таблицы была недоступна для редактирования в Grid-e, а остальные были. При этом должны отображаться все строки. validateWrite, securityKeys не предлагать. Необходимо, чтобы был запрет на уровне элементов управления формы(т.е. чтобы значения полей нельзя было изменить даже без последующего сохранения данных).
__________________
WBR, Anton |
|
27.12.2003, 08:49 | #2 |
Участник
|
нашел.
__________________
WBR, Anton |
|
27.12.2003, 12:31 | #3 |
Участник
|
здорово!
а можешь рассказать что нашел и как делается то, что ты хочешь? Совет останется под твоим именем. |
|
27.12.2003, 20:33 | #4 |
Модератор
|
уж не перекрыть ли active() на datasource ?
это же в куче мест делается..
__________________
-ТСЯ или -ТЬСЯ ? |
|
28.12.2003, 20:22 | #5 |
Участник
|
Не знаю, как поступил Антон Солдатов, и даже не знаю, как это делается, но если кому-то интересно как это сделать, то могу подсказаь место, где можно посмотреть, как это сделали авторы системы.
В общем журнале ГК, если установить значения фильтра "Просмотр" в значение "Все", то появится список журналов, среди которых будут как разнесенные, так и неразнесенные. Первые не редактируются, а вторые можно редактировать. |
|
29.12.2003, 10:14 | #6 |
Модератор
|
обычно это делается так:
перекрывается active() на datasource: Код: int active() { int ret; ret = super(); if (myTable.condition) { myTable_ds.allowEdit(false); myTable_ds.allowDelete(false); } else { myTable_ds.allowEdit(true); myTable_ds.allowDelete(true); } return ret; }
__________________
-ТСЯ или -ТЬСЯ ? |
|
05.01.2004, 15:05 | #7 |
Участник
|
Цитата:
Сообщение от Vadik
обычно это делается так:
перекрывается active() на datasource: Код: int active() { int ret; ret = super(); if (myTable.condition) { myTable_ds.allowEdit(false); myTable_ds.allowDelete(false); } else { myTable_ds.allowEdit(true); myTable_ds.allowDelete(true); } return ret; } 2Vadik: Лаконичнее и красивее будет так: Код: int active() { int ret; ret = super(); this.allowEdit(boolean_condition); return ret; }
__________________
WBR, Anton |
|
05.01.2004, 16:13 | #8 |
Модератор
|
Цитата:
Сообщение от Антон Солдатов
2Vadik: Лаконичнее и красивее будет так:
Код: int active() { int ret; ret = super(); this.allowEdit(boolean_condition); return ret; } Я скорее хотел подчеркнуть использование .allowDelete() - это не очевидно, но если про него забыть, будут грабли
__________________
-ТСЯ или -ТЬСЯ ? |
|
06.01.2004, 05:09 | #9 |
Участник
|
Цитата:
Сообщение от Vadik
Я скорее хотел подчеркнуть использование .allowDelete() - это не очевидно, но если про него забыть, будут грабли
__________________
WBR, Anton |
|
06.01.2004, 11:22 | #10 |
Модератор
|
Цитата:
Сообщение от Антон Солдатов
В моем случае наоборот: allowDelete(true) хотя бы для одной записи, приводит к тому, что пропадает кнопка delete на WebGrid-е в принципе.
А как дела с правами? Помню, приходилось из кода анализировать права текущего пользователя на таблицу и рулить allowEdit(), allowDelete()
__________________
-ТСЯ или -ТЬСЯ ? |
|