К сожалению, в стандартном DataGrid нет возможности отключить сортировку грида опционально. Поэтому в случае, если необходимо реализовать подобную функциональность, то могу предложить альтернативное решение.
Как известно, при включении сортировки грида - датасет сперва закрывается, затем открывается уже с сортировкой. Следовательно, для того, чтобы отключить возможность сортировки необходимо просто "не дать" датасету закрыть себя (это происходит при нажатии на названии колонки).
Для этого, в событии датасета "OnDatasetBeforeClose" прописываем следующее:
DoClose.Value = false;
}
Таким образом он просто не закроется. Но, когда это необходимо сделать (для того, чтобы очистить датасет и следовательно наполнить иными данными), то следует просто передать соответствующий параметр. К примеру:
....
Dataset.Attributes('AllowClose') = true;
Dataset.Close();
Dataset.Append();
.....
и метод "OnDatasetBeforeClose" будет выглядеть так:
function mds_rtsOnDatasetBeforeClose(Dataset, DoClose) {
if (Dataset.Attributes('AllowClose')) {
DoClose.Value = true;
Dataset.Attributes('AllowClose') = null;
return;
}
DoClose.Value = false;
}
Таким образом, датасет будет закрываться только при помощи пользователя (а не грида или дерева).
Желаю удачи!
С уважением,
Мельникова Екатерина