Коллеги, добрый день!
Подскажите пожалуйста, каким образом возможно динамически изменять имя вкладки?
Задача следующая:
Необходимо рядом с именем вкладки "Файлы" выводить 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);
}
},