Вопрос

Гиперлинк в гриде детали

Всем доброго времени суток! 

Подскажите, как реализовать следующий таск в гриде детали есть есть текстовое поле которое необходимо сделать гиперссылкой -  http://prntscr.com/hm7pnf

реализовал следующие методы:

getExternalURLLink: function() {
				return this.getLink(this.get("Number"));
			},
			onExternalLinkClick: function() {
				debugger;
				var value = this.get("Number");
				!Ext.isEmpty(value) && window.open(value, "_blank");
				return false;
			},
			getLink: function(value) {
				if (Terrasoft.isUrl(value)) {
					return {
						url: value,
						caption: value
					};
				}
			}
		},

Вопрос в следующем, как привязать данные ф-ции к нужному полю?

Код детали приведен ниже:

define("ScCoinCommunicationDetail", ["ConfigurationGrid", "ConfigurationGridGenerator",
	"ConfigurationGridUtilities"], function() {
	return {
		entitySchemaName: "ScMeansOfCommunication",
		attributes: {
			"IsEditable": {
				dataValueType: Terrasoft.DataValueType.BOOLEAN,
				type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
				value: true
			}
		},
 
		mixins: {
			ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities"
		},
 
		methods: {
			getExternalURLLink: function() {
				return this.getLink(this.get("Number"));
			},
			onExternalLinkClick: function() {
				debugger;
				var value = this.get("Number");
				!Ext.isEmpty(value) && window.open(value, "_blank");
				return false;
			},
			getLink: function(value) {
				if (Terrasoft.isUrl(value)) {
					return {
						url: value,
						caption: value
					};
				}
			}
		},
 
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "DataGrid",
				"values": {
					"className": "Terrasoft.ConfigurationGrid",
					"generator": "ConfigurationGridGenerator.generatePartial",
					"generateControlsConfig": {"bindTo": "generateActiveRowControlsConfig"},
					"changeRow": {"bindTo": "changeRow"},
					"unSelectRow": {"bindTo": "unSelectRow"},
					"onGridClick": {"bindTo": "onGridClick"},
					"activeRowActions": [
						{
							"className": "Terrasoft.Button",
							"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
							"tag": "save",
							"markerValue": "save",
							"imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
						},
						{
							"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
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

Благодарю!

Нравится

1 комментарий

"ConfigurationGrid" - на самом деле начинать надо было вот с этого. По простому - никак, т.к в редактируемом гриде нет быстрого способа сделать гиперссылочное поле.

Придётся смотреть как реализована деталь "График поставки и оплат" в заказе. Там "Добавить" - кликабельное поле. Вангую, что скорее всего сделано в виде невидимой кнопки. Как-то так.

Показать все комментарии