Я создал небольшой пример со значениями запроса и условным отображением, попробуйте его здесь .Настройка выглядит следующим образом:
Кнопка редактирования режима: обратите внимание на условие: я не хочу видеть эту кнопку, когда включен «режим редактирования» -> «показывать мне, когда»запрос отличается от записи '.Также при первом входе на страницу запрос будет НЕДЕЙСТВИТЕЛЕН.Кнопка редактирования будет показана, потому что NULL
отличается от WRITE.
Кнопка режима чтения: во многом то же самое.В условии специально проверяется запрос на запись: кнопка не отображается, когда запрос нулевой.
Условие в табличной форме:
Для прочитанной формы условие следующее.Опять же, запрос отличается от WRITE, поэтому отчет будет отображаться, когда запрос равен NULL!
Как вы можете решить эту проблему другим способом?Если вы хотите более динамичные действия, вы можете использовать JavaScript.То, что я иногда делаю, это установка атрибута ввода только для чтения и изменение фона на серыйЭто позволит пользователю перемещаться по элементам, но не позволит им редактировать его.Я выделяю их серым цветом, чтобы показать, что поле недоступно для редактирования.Не устанавливайте disable в true: это нарушит функциональность apex, поскольку отключенные поля не публикуют свои значения, в то время как apex ожидает их.Пример:
$("input").attr("readonly", "true");
$("input[readonly='true']").css("background-color":"grey");
Это установит для каждого поля ввода на вашей странице только чтение и выделит их серым цветом.Вы можете использовать кнопку, ссылку, динамическое действие, ... для вызова этого кода.Ваша страница не должна быть отправлена или перезагружена даже.
Я часто даже использую это, потому что я специально не хочу использовать «отображаемый элемент» или даже «условие только для чтения»: они отображаютполя как плоский текст и затрудняют различие между меткой и значением.Даже в форме (не табличной) мне нравится использовать этот трюк, я нахожу его более удобным для использования.
И лучшая практика: я не знаю :) Я сам обычно использую способ «форма с отчетом», но в основном потому, что клиент тоже этого хочет.Для них это способ облегчения понимания и обслуживания после.Я полагаю, что вы и ваш клиент должны решить, что оба метода не так уж сложны и верны!