Коллеги, добрый день!
Подскажите пожалуйста, каким образом возможно динамически изменять имя вкладки?
Задача следующая:
Необходимо рядом с именем вкладки "Файлы" выводить counter связанных вложений. Т.е. выглядеть это должно примерно так: "Файлы (3)".
Как посчитать количество вложений - ясно. Но как изменять имя вкладки?
Добавил в init() следующий код:
var tabsCollection = this.get("TabsCollection"); this.set("Resources.Strings.UsrFilesCounterCaption" , this.get("UsrFileCounter")); var fileCount = this.get("Resources.Strings.UsrFilesCounterCaption"); tabsCollection.collection.items[3].values.Caption = fileCount;
Но на странице ничего не изменилось...
Нравится
Добрый день, Павел!
Вам необходимо менять модель, а не values, т.е. примерно так:
tabsCollection.collection.items[3].model.attributes.Caption = fileCount;
Или как еще один вариант:
tabsCollection.collection.items[3].set("Caption", fileCount);
Как вариант, найти определение в diff нужной вкладки, в values дописать
"caption": {"bintTo": "MyTabCaption"}
Где MyTabCaption - виртуальный аттрибут, определённый в attributes. В него и устанавливайте значения.
Добрый день, Павел!
Вам необходимо менять модель, а не values, т.е. примерно так:
tabsCollection.collection.items[3].model.attributes.Caption = fileCount;
Или как еще один вариант:
tabsCollection.collection.items[3].set("Caption", fileCount);
Спасибо!Вот такая функция получилась:
initUsrFileCounterCaption: function() { var fileCount = null; var tabsCollection = this.get("TabsCollection"); var recordId = this.get("Id"); if (recordId && recordId !== null && !this.Ext.isArray(recordId)) { var esq = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "CaseFile"}); esq.addColumn("Id"); esq.addColumn("Case"); esq.filters.add("CaseFilter", Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Case.Id", recordId)); esq.getEntityCollection(function(result) { if (result.success) { var collection = result.collection; if (collection) { fileCount = (this.get("Resources.Strings.UsrFilesCounterCaption") + " (" + collection.getCount() + ") "); tabsCollection.collection.items[3].set("Caption", fileCount); } } }, this); } else { fileCount = (this.get("Resources.Strings.UsrFilesCounterCaption") + " (0) "); tabsCollection.collection.items[3].set("Caption", fileCount); } },