![]() |
|
||||||||||
|
|||||
|
Как изменить толщину hGridLines и vGridLines соответсвенно в компоненте DataGrid,
Как я понял нормальными методами никак. Пытался применить хак по аналогии как делал уважаемый __etc, когда было необходимо добиться сплошной заливки хеадера в таблице (http://flasher.ru/forum/showthread.php?t=93501), функцию отрисовки в классе датагрид нашел, но что то ничего не получилось ![]() Помогите, плииз.. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Отрисовка линий идет в методе drawColumns. Там толщина линии стоит 0. Можно, конечно, опять написать хак, если надо
![]() |
|
|||||
|
Дада! очень надо.
пытался сам (нашел эту функцию), делал по аналогии с отрисовкой сплошным цветом хеадера, но че то ваще перестало таблицу отрисовывать (нахимичил наверное не там где надо ).Буду очень признателен! ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
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'});
changeDrawColumnsHandler = function (grid) {
grid.drawColumns = function() {
var hLineHeight = 4; // тощина гор. линии
var vLineWidth = 2; // толщиа верт. линии
delete this.invDrawCols;
var lines = this.lines_mc=this.listContent.createEmptyMovieClip("lines_mc", this.LINEDEPTH);
var x = 0.75;
var oldX = 1;
var tmpHeight = this.height-1;
var lineCol = this.getStyle("vGridLineColor");
var len = this.columns.length;
this.placeSortArrow();
for (var i = 0; i<len; i++) {
var col = this.columns[i];
var prop = (this.enabled) ? "backgroundColor" : "backgroundDisabledColor";
var bgCol = col.getStyle(prop);
x += col.__width;
lines.moveTo(oldX, 1);
lines.lineStyle(0, lineCol, 0);
var tmpX = Math.floor(x);
lines.lineTo(tmpX, 1);
if (i<this.columns.length-1 && this.getStyle("vGridLines")) {
lines.lineStyle(vLineWidth, lineCol, 100);
}
lines.lineTo(tmpX, height);
lines.lineStyle(vLineWidth, lineCol, 0);
lines.lineTo(oldX, height);
lines.lineTo(oldX, 1);
if (this.__showHeaders) {
var cell = this.headerCells[i];
cell._x = oldX+2;
cell.hO._x = oldX;
cell.setSize(col.__width-5, Math.min(this.__headerHeight, cell.getPreferredHeight()));
cell.hO._width = col.__width-2;
cell.hO._height = this.__headerHeight;
cell._y = (this.__headerHeight-cell._height)/2;
this.header_mc["sep"+i]._x = x-2;
this.listContent.disableHeader._width = this.totalWidth;
}
for (var j = 0; j<this.__rowCount; j++) {
if (i == 0) {
this.rows[j].colBG.clear();
}
var w:Number = col.__width;
this.rows[j].drawCell(i, oldX, w, bgCol);
}
oldX = x;
}
if (this.getStyle("hGridLines")) {
this.lines_mc.lineStyle(2, this.getStyle("hGridLineColor"));
for (var i = 1; i<this.__rowCount; i++) {
this.lines_mc.moveTo(hLineHeight, this.rows[i]._y);
this.lines_mc.lineTo(this.totalWidth, this.rows[i]._y);
}
}
};
};
changeDrawColumnsHandler(my_dg);
my_dg.setStyle('hGridLines', true);
my_dg.setStyle('hGridLineColor', 0xFF0000);
my_dg.setStyle('vGridLineColor', 0x0000FF);
my_dg.redraw();
|
|
|||||
|
Спасибо! все работает, тока там немного подправил (с горизонтальными линиями был косячок).
Теперь осталось отыскать где "прячутся" вертикальные линии в хеадере (там на них хак не повлял) ![]() Спасибо! |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|