То, что вы описали выше, звучит немного запутанно.Назначение свойства readonly состоит в том, чтобы гарантировать, что при переходе строки в режим редактирования столбцы, которые были заданы только для чтения, не могут быть отредактированы, что, по-видимому, является тем, что вы ищете.В обычном режиме чтения все столбцы будут иметь одно и то же разрешение независимо от того, была ли установлена только чтение или нет, поскольку вы просто просматриваете данные, а не редактируете.*
Похоже, вы хотите, чтобы это поле редактировалось при вставке записи, но не при редактировании строки.Ну, это можно сделать с помощью некоторого JavaScript.Если вы используете Ajax-привязку (единственный способ вызвать это событие), вы можете сделать следующее, подписавшись на клиентское событие onEdit:
...
.ClientEvents(clientEvents => clientEvents.OnEdit("onEdit"))
...
А вот и JavaScript:
<script type="text/javascript">
function onEdit(e) {
var form = e.form;
var mode = e.mode;
if (mode == "edit") {
var country = form.Country; //Country is a public property of my Model
country.disabled = true;
}
}
Как вы можете видеть выше, я получаю форму со связанной отредактированной строкой и специально беру поле, связанное со свойством, которое я не хочу редактировать, и отключаю этот элемент ввода.