Здравствуйте!
Хотим сделать чтобы в редактируемом реестре записи отображались как ссылки для удобного перехода, нашел что для этого необходимо добавить признак useLinks: true для DataGrid и метод-обработчик linkClicked, но это почему-то не меняет ситуацию, строки отображаются как обычно... ошибок в консоли нет
Код DataGrid:
{
"operation": "merge",
"name": "DataGrid",
"values": {
"className": "Terrasoft.ConfigurationGrid",
"generator": "ConfigurationGridGenerator.generatePartial",
"generateControlsConfig": {"bindTo": "generatActiveRowControlsConfig"},
"changeRow": {"bindTo": "changeRow"},
"unSelectRow": {"bindTo": "unSelectRow"},
"onGridClick": {"bindTo": "onGridClick"},
"activeRow": {"bindTo": "ActiveRow"},
"selectedRows": {"bindTo": "SelectedRows"},
"activeRowActions": [
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "save",
"markerValue": "save",
"imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
},
{
"className": "Terrasoft.Button",
"style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "card",
"markerValue": "card",
"imageConfig": {"bindTo": "Resources.Images.CardIcon"}
},
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "cancel",
"markerValue": "cancel",
"imageConfig": {"bindTo": "Resources.Images.CancelIcon"}
},
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "remove",
"markerValue": "remove",
"imageConfig": {"bindTo": "Resources.Images.RemoveIcon"}
}
],
"initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
"activeRowAction": {"bindTo": "onActiveRowAction"},
"multiSelect": false,
"useLinks": true,
"primaryColumnName": "Id",
"sortColumnIndex": null,
"listedZebra": true,
"type": "listed"
}
}
Посмотрите, пожалуйста, может я что-то упустил
Нравится
Добрый день!
Я бы Вам рекомендовал посмотреть в сторону метода addColumnLink в GridUtilitiesV2. Так же можно изучить поподробнее как формируются ссылки в FileDetailV2
Добрый день!
Я бы Вам рекомендовал посмотреть в сторону метода addColumnLink в GridUtilitiesV2. Так же можно изучить поподробнее как формируются ссылки в FileDetailV2
Обрати внимание на флаг showValueAsLink (и выше тебе уже ответили в системе множество примеров, потрать немного времени и разберись)
ПРимер использования ниже
{
"operation": "insert",
"name": "UsrURLpage",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 3,
"layoutName": "Header"
},
"labelConfig": {},
"enabled": true,
"bindTo": "UsrURLpage",
"showValueAsLink": true,
"href": {
"bindTo": "UsrURLpage",
"bindConfig": {"converter": "getUsrURLpageLink"}
},
"controlConfig": {
"className": "Terrasoft.TextEdit",
"linkclick": { bindTo: "onUsrURLpageLinkClick"}
}
},
"parentName": "Header",
"propertyName": "items",
"index": 6
}
Переопределил метод addColumnLink, спасибо Константину за наводку:
addColumnLink: function(item, column) {
this.callParent(arguments);
var columnPath = column.columnPath;
if (columnPath === "UsrProduct") {
item["on" + columnPath + "LinkClick"] = function() {
var value = this.get(columnPath);
return {
caption: item.values.UsrProduct.displayValue,
target: "_self",
title: item.values.UsrProduct.displayValue,
url: "/0/Nui/ViewModule.aspx#CardModuleV2/ProductPageV2/edit/" + item.values.UsrProduct.value
};
};
}
}При переходе по ссылке появились ошибки в консоли, видимо не мог поставить фокус при переходе, просто убрал фокус на это поле:
focusActiveRowControl: function(columnName) {
if (!columnName || columnName === "UsrProduct") {
return;
}
var activeRow = this.getActiveRow();
activeRow.set("Is" + columnName + "Focused", true);
this.currentActiveColumnName = columnName;
}
Всем спасибо за помощь...)