Datagrid基于文本框和组合框

时间:2015-12-25 17:01:55

标签: datagrid actionscript

我正在创建的程序的一部分包括一个下拉菜单,用户可以在输入负载位置之前选择一种类型的负载。然后,负载和位置将出现在数据网格中,并且可以添加用户喜欢的数量。

我不太确定我哪里出错但这是我的代码:

function loadlist():void{
combobox1.addItem ( { label: "Choose a Load" } );
combobox1.addItem ( { label: "Point Load" } );
combobox1.addItem ( { label: "Bending Moment" } );
combobox1.addItem ( { label: "Uniformly Distributed Load" } );
combobox1.addItem ( { label: "Varying Distributed Load" } );
combobox1.addItem ( { label: "Nonlinear Distributed Load" } );
}

function loadbuttonclick (event:MouseEvent):void{
combobox1.removeAll();
loadlist();
trace("load");

//datagrid
var myTextFormat: TextFormat = new TextFormat();
myTextFormat.font = "Comic Sans MS";

var datagrid:DataGrid = new DataGrid;
datagrid.columns = ["Type of Load", "Position of Load"];
datagrid.resizableColumns = true;
datagrid.setRendererStyle("textFormat", myTextFormat);
datagrid.addItem(Load type: "combobox1.selectedItem.label", Load position: "loadposition.text");


addChild(datagrid);

datagrid.addEventListener(Event.CHANGE, gridItemClick);

function gridItemClick (event:Event):void{
trace("The Selected Load is " + combobox1.selectedItem.label);
}
}
}

1 个答案:

答案 0 :(得分:1)

你应该从这一行得到一个错误,语法似乎是错误的:

datagrid.addItem(Load type: "combobox1.selectedItem.label", Load position: "loadposition.text");
  • 它不是一个对象,一个对象必须用大括号{}来定义。
  • 使用大括号定义时,对象键不能有空格。
  • 您尝试将动态值作为字符串传递,您应该编写combobox1.selectedItem.label而不是" combobox1.selectedItem.label"。

我曾经使用过数据网格,但是如果我没记错的话,该项目就是一个对象,哪些键应与列匹配。

由于您的列包含空格,您将无法写入:

datagrid.addItem({Load type: combobox1.selectedItem.label, Load position: loadposition.text});

但是,这应该有效:

var object:Object = new Object();

object["Type of Load"] = combobox1.selectedItem.label;
object["Position of Load"] = loadposition.text;

datagrid.addItem(object);

我没有时间对它进行测试,但这应该是正确的方向。