0

我正在研究一个数据网格,它从流程早期获得的变量中提取信息。我需要能够编辑 overpaidAmount 列。除了需要用户输入的列之外,我已经锁定了所有列,但是一旦他们添加了信息,我如何将其分配回变量?在网上到处找,找不到任何关于这个特定问题的东西。

import fl.controls.DataGrid;
import fl.controls.ScrollPolicy;
import fl.data.DataProvider;
import fl.controls.dataGridClasses.DataGridColumn;

var col1:DataGridColumn = new DataGridColumn("Line");
var col2:DataGridColumn = new DataGridColumn("ServiceCode");
var col3:DataGridColumn = new DataGridColumn("BilledCharge");
var col4:DataGridColumn = new DataGridColumn("Paid");
var col5:DataGridColumn = new DataGridColumn("OverpaidAmount");

datagrid.addColumn(col1);
datagrid.addColumn(col2);
datagrid.addColumn(col3);
datagrid.addColumn(col4);
datagrid.addColumn(col5);

col1.editable = false;
col2.editable = false;
col3.editable = false;
col4.editable = false;

col1.minWidth = 40;
col2.minWidth = 80;
col3.minWidth = 80;
col4.minWidth = 80;
col5.minWidth = 130;

var myData:Array;

if ((majorPercentage1 == "---") || (majorPercentage1 == "000") || (majorPercentage1 == "   "))
{
    myData =  
    [
        {Line:"1", ServiceCode: cpt1, BilledCharge: charge1, Paid: basicPaid1, OverpaidAmount: overpaidAmount1},
        {Line:"2", ServiceCode: cpt2, BilledCharge: charge2, Paid: basicPaid2, OverpaidAmount: overpaidAmount2},
        {Line:"3", ServiceCode: cpt3, BilledCharge: charge3, Paid: basicPaid3, OverpaidAmount: overpaidAmount3},
        {Line:"4", ServiceCode: cpt4, BilledCharge: charge4, Paid: basicPaid4, OverpaidAmount: overpaidAmount4},
        {Line:"5", ServiceCode: cpt5, BilledCharge: charge5, Paid: basicPaid5, OverpaidAmount: overpaidAmount5}
    ];
}
else
{
    myData =  
    [
        {Line:"1", ServiceCode: cpt1, BilledCharge: charge1, Paid: majorPaid1, OverpaidAmount: overpaidAmount1},
        {Line:"2", ServiceCode: cpt2, BilledCharge: charge2, Paid: majorPaid2, OverpaidAmount: overpaidAmount2},
        {Line:"3", ServiceCode: cpt3, BilledCharge: charge3, Paid: majorPaid3, OverpaidAmount: overpaidAmount3},
        {Line:"4", ServiceCode: cpt4, BilledCharge: charge4, Paid: majorPaid4, OverpaidAmount: overpaidAmount4},
        {Line:"5", ServiceCode: cpt5, BilledCharge: charge5, Paid: majorPaid5, OverpaidAmount: overpaidAmount5}
    ];  
}
datagrid.dataProvider = new DataProvider(myData);

任何帮助表示赞赏。

4

1 回答 1

0

好的,所以我想出了一个解决方案,无论这是否是最好的方法 - 可能不是:(

我必须创建一些动态文本字段,一旦我点击它们,它们就会连续保存来自单元格的信息。然后我创建了一个输入文本字段来显示我想要更新的变量。添加了一个带有以下侦听器的更新按钮,并且成功了。更新值后,只需添加一些代码即可刷新数据网格。

function griditemselected (event:Event):void{
overPaid_txt.text = event.target.selectedItem.OverpaidAmount;
}

//Find the row number of the selected item so that we can update the correct overpaid amount
datagrid.addEventListener(ListEvent.ITEM_CLICK , gridItemSelected);
function gridItemSelected(e:ListEvent):void {
rowID = Number(e.rowIndex)+1;
}     

updated_btn.addEventListener(MouseEvent.CLICK, updateOverpaid);

function updateOverpaid(e:MouseEvent):void
{
//Update the selected line overpaidAmount       
switch (rowID)
{
    case 1:
    overpaidAmount1 = overPaid_txt.text;
    break;

    case 2:
    overpaidAmount2 = overPaid_txt.text;
    break;

    case 3:
    overpaidAmount3 = overPaid_txt.text;
    break;

    case 4:
    overpaidAmount4 = overPaid_txt.text;
    break;

    case 5:
    overpaidAmount5 = overPaid_txt.text;
    break;
}           
//Remove all the rows and refresh with new variable for overpaid amount
datagrid.removeAll();
datagrid.addItem(event1);
datagrid.addItem(event2);
datagrid.addItem(event3);
datagrid.addItem(event4);
datagrid.addItem(event5);
}
于 2013-07-05T12:09:23.677 回答