Здравствуйте!
Хотим сделать чтобы в редактируемом реестре записи отображались как ссылки для удобного перехода, нашел что для этого необходимо добавить признак 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; }
Всем спасибо за помощь...)