private function restoreColumns(headerTextArray:ArrayCollection, widthArray:ArrayCollection):void {
dg.removeEventListener(IndexChangedEvent.HEADER_SHIFT, this.saveColumns);
for (var n:int = 0; n < headerTextArray.length; n++)
{
trace ("Before: n: " + n + " WA: " + widthArray.getItemAt(n) + " DG: " + dg.columns[n].width);
// moveColumnTo(String(headerTextArray.getItemAt(n)), n);
// Problems copying for the last column
dg.columns[n].width = 0;
trace ("Middle: n: " + n + " WA: " + widthArray.getItemAt(n) + " DG: " + dg.columns[n].width);
dg.columns[n].width = widthArray.getItemAt(n);
trace ("After: n: " + n + " WA: " + widthArray.getItemAt(n) + " DG: " + dg.columns[n].width);
}
dg.addEventListener(IndexChangedEvent.HEADER_SHIFT, this.saveColumns);
}
這裏是上面代碼的跟蹤輸出:問題設置一個值
Before: n: 0 WA: 113 DG: 95
Middle: n: 0 WA: 113 DG: 20
After: n: 0 WA: 113 DG: 113
Before: n: 1 WA: 71 DG: 85
Middle: n: 1 WA: 71 DG: 20
After: n: 1 WA: 71 DG: 71
Before: n: 2 WA: 41 DG: 101
Middle: n: 2 WA: 41 DG: 101
After: n: 2 WA: 41 DG: 101
正如你所看到的,
我不能設置dg.columns [2 ] .width到所需的值。 [問題發生在最後一列。]
我也無法在中間跟蹤之前設置dg.columns [0] .width = 0。
我最初認爲moveColumnTo()可能與問題有關,但即使在對函數的調用發表評論之後,我仍然遇到問題。
出了什麼問題?
這是調用restoreColumns的代碼。 [我才意識到,我可以編輯我原來的職位,並添加此。]
private function processQueryResponse(evt:DWSQLevent):void {
this.removeEventListener(IndexChangedEvent.HEADER_SHIFT, this.saveColumns);
this.removeEventListener(ResizeEvent.RESIZE, this.saveColumns);
var headerTextArray:ArrayCollection = new ArrayCollection();
var widthArray:ArrayCollection = new ArrayCollection();
if (query.queryMessage == "SELECT") {
if (evt.dataRetrieved == true && query.queryData && query.queryData.length > 0 && query.queryData[0].length > 0) {
initialColumns = query.queryData[0];
var record:Object;
for (var n:Number = 0; n< this.columns.length; n++)
{
record = initialColumns.getItemAt(n);
headerTextArray.addItem(record.headertext);
widthArray.addItem(record.width);
}
restoreColumns(headerTextArray, widthArray);
haveColumnData = true;
} else if (query.queryData.length > 0 && query.queryData[0].length == 0){
Alert.show("Problems reading column data from database. Saved column order not restored.");
trace ("Select error/no rows "); // alert moving not done
}
} else {
}
this.addEventListener(IndexChangedEvent.HEADER_SHIFT, this.saveColumns);
// this.addEventListener(ResizeEvent.RESIZE, this.saveColumns);
}
我正在考慮它,但是,你可以嘗試改變這個「數字」變量作爲一個「int」變量在這裏:'for(var n:Number = 0; n