|
|
|||||
DataGrid: толщина hGridLines
Как изменить толщину hGridLines и vGridLines соответсвенно в компоненте DataGrid,
Как я понял нормальными методами никак. Пытался применить хак по аналогии как делал уважаемый __etc, когда было необходимо добиться сплошной заливки хеадера в таблице (http://flasher.ru/forum/showthread.php?t=93501), функцию отрисовки в классе датагрид нашел, но что то ничего не получилось Помогите, плииз.. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Отрисовка линий идет в методе drawColumns. Там толщина линии стоит 0. Можно, конечно, опять написать хак, если надо
|
|
|||||
Дада! очень надо.
пытался сам (нашел эту функцию), делал по аналогии с отрисовкой сплошным цветом хеадера, но че то ваще перестало таблицу отрисовывать (нахимичил наверное не там где надо ). Буду очень признателен! |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
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, время: 22:01. |
|
« Предыдущая тема | Следующая тема » |
|
|