Просмотр полной версии : header at DataGrid
как сделать чтоб заливка хедера была не градиентом, а солид?
как сделать чтоб заливка хедера была не градиентом, а солид?
Это рендер тебе надо писать, но это не так уж и просто, бо там и сортировка отображается и т.д.
В заголовках рендерер вроде бы не пользуется (не смотрел, лень и не буду). А настроить градиент можно.
В заголовках рендерер вроде бы не пользуется (не смотрел, лень и не буду). А настроить градиент можно.
Плиз, скажи как настроить градиент, я же чего про рендеры взялся, такая же задача. Бо искал везде, только нашел как через рендре, но там свой гемор
http://livedocs.macromedia.com/flash/8/main/00003255.html
Кажется там можно указать массив из двух элементов с цветом (в headerColor), чтобы поменять оба цвета градиента.
Не нефига, пишу
var tmp = new Array(0xFF0000,0xFF0000);
mainGrid.setStyle('headerColor',tmp);
не воспринимает он массив, только если цвет прописать, но тогда будет градиент, т..е только один цвет указываешь.
Заглянул в код DataGrid, увидел, что в drawHeaderBG используется только один цвет. Вариантов немного, только хак. Т.е. я могу написать код для изменения градиента, если это нужно.
Задавать цвета градиентов можно было во Flex, но он тут не при делах, ясное дело.
А вообще долго писать это, или может подскажишь как самому написать, или примерчик небольшой. бо очень сильно надо.
Ну вот хак:
my_dg.columnNames = ['a', 'b'];
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
changeDrawHeaderBGHandler = function (grid) {
grid.drawHeaderBG = function() {
var mc = this.header_mc;
mc.clear();
var o = this.__viewMetrics;
var tot = Math.max(this.totalWidth, this.displayWidth+3);
mc.moveTo(o.left, o.top);
var matrix:Object = {matrixType:"box", x:0, y:0, w:tot, h:this.__headerHeight+1, r:Math.PI/2};
var colors:Array = [0xFFCC00, 0xFF0000, 0xffffff];
var ratios:Array = [0, 60, 255];
var alphas:Array = [100, 100, 100];
mc.beginGradientFill("linear", colors, alphas, ratios, matrix);
mc.lineStyle(0, 0x000000, 0);
mc.lineTo(tot, o.top);
mc.lineTo(tot, this.__headerHeight+1);
mc.lineStyle(0, 0x000000, 100);
mc.lineTo(o.left, this.__headerHeight+1);
mc.lineStyle(0, 0x000000, 0);
mc.endFill();
};
};
changeDrawHeaderBGHandler(my_dg);
my_dg.redraw();
В внутри функции можно задать нужные цвета и вообще переписать отрисовку фона у хедера
my_dg — DataGrid.
Ну вот хак:
my_dg.columnNames = ['a', 'b'];
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
my_dg.addItem({a:'aaa', b:'bbb'});
changeDrawHeaderBGHandler = function (grid) {
grid.drawHeaderBG = function() {
var mc = this.header_mc;
mc.clear();
var o = this.__viewMetrics;
var tot = Math.max(this.totalWidth, this.displayWidth+3);
mc.moveTo(o.left, o.top);
var matrix:Object = {matrixType:"box", x:0, y:0, w:tot, h:this.__headerHeight+1, r:Math.PI/2};
var colors:Array = [0xFFCC00, 0xFF0000, 0xffffff];
var ratios:Array = [0, 60, 255];
var alphas:Array = [100, 100, 100];
mc.beginGradientFill("linear", colors, alphas, ratios, matrix);
mc.lineStyle(0, 0x000000, 0);
mc.lineTo(tot, o.top);
mc.lineTo(tot, this.__headerHeight+1);
mc.lineStyle(0, 0x000000, 100);
mc.lineTo(o.left, this.__headerHeight+1);
mc.lineStyle(0, 0x000000, 0);
mc.endFill();
};
};
changeDrawHeaderBGHandler(my_dg);
my_dg.redraw();
В внутри функции можно задать нужные цвета и вообще переписать отрисовку фона у хедера
my_dg — DataGrid.
Гениально, даже очень гениально. Спасибо большое.
Гениально было бы не ломая компоненты. А так — обычный хак.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.