Read Only
The object that is opened in Только чтение
(Read-only
) cannot be changed by the user, the data stored in the object will be read-only.
Mode ReadOnly
may need in different situations, for example:
- One user opened the object for editing, at this time another user tries to open the object for editing.
- The user does not have rights to change any field of an object, or the object itself, but has the right to view the data.
Components of ReadOnly
Mode can be divided into 3 components:
- Lock user interface
- Locking a data object in application memory
- Locking a data object in the database
Lock user interface
If the user cannot make changes to the object, it must realize it at the time of opening the edit form. If the object is currently unavailable because another user is advisable in the prevention of type Объект locked by another user. You want to access object read-only? Yes\Нет
.
If the user still wants to access the object in ReadOnly
, it is necessary to lock the controls to edit the fields of the object. You also need to hide the buttons Сохранить
and Сохранить and закрыть
(only for the case of full lock, and not lock the individual fields of the object).
To lock the user interface in a Web application using a class WebBinder.
WebBinder allows you to either lock the object completely, or to block only some of its fields.
Important: it Should be noted that WebBinder blocks only those fields of the object that was in WebBinder’e and are passed in view, and only server-side controls that have properties ReadOnly
or Enabled
.
- Full lock on the object via WebBinder is a method call
wb.SetReadOnlyForm(this.Controls, this.View, true);
where wb
this instance WebBinder’on a specific page.
- Another option full lock: set ReadOnly properties in a specific form
this.ReadOnly = true;
- Partial lock object (lock individual fields) is carried out calling the method
wb.SetReadOnlyProperty(this.Controls, "Name", true);
where ФИО
is the name of the property that you want to lock for editing.
- Another version of a partial lock - lock a specific control by calling method
wb.SetReadonlyToControl(ctrlФИО, true);
where ctrlФИО
- control you want to lock for editing.
Lock object data when opening the edit page
To lock an object while opening the page is enough to send a GET-request parameter &mode=readonly
.
You can see example add a button in the toolbar or in line WebObjectListView.
Lock a data object in application memory
Lock object in memory by calling the object method DataObject.LockObject(Key)
where Key
a key lock type Guid
. To unlock the object can tolko this klucom using the method DataObject.UnLockObject(Key)
.
When you call a method LockObject
lock in the database is not sent.
You can see example in the article How to access object read-only.
Lock a data object in the database
To lock using a supported technology Service locks.
Lock object in the database iron protects the object against changes of the object by other users. Creates a record in the table STORMNETLOCKDATA
and while it exists there, change the object, only the user that has locked the object.
An example can be found in the Service of locks.