Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在dart中的每个输入字段外生成tds_Dart_Dart Html - Fatal编程技术网

在dart中的每个输入字段外生成tds

在dart中的每个输入字段外生成tds,dart,dart-html,Dart,Dart Html,这是我关于stackoverflow的第一个问题,我对dartlang完全是新手 我使用以下方法创建了8个输入字段: InputElement in1=新的InputElement(); in1.占位符=”№"; InputElement in2=新的InputElement(); in2.placeholder=“Name”; ... InputElement in8=新的InputElement(); in8.placeholder=“日期”; 我不知道如何使用包含这些输入字段的tds自

这是我关于stackoverflow的第一个问题,我对dartlang完全是新手

我使用以下方法创建了8个输入字段:

InputElement in1=新的InputElement();
in1.占位符=”№";
InputElement in2=新的InputElement();
in2.placeholder=“Name”;
... 
InputElement in8=新的InputElement();
in8.placeholder=“日期”;
我不知道如何使用包含这些输入字段的tds自动生成行。如果我手动创建,我的代码如下所示:

InputElement in1=新的InputElement();
in1.占位符=”№";
TableCellElement cell1=新元素.td();
cell1.nodes.add(in1);
InputElement in2=新的InputElement();
in2.placeholder=“Name”;
TableCellElement cell2=新元素.td();
cell2.nodes.add(in2);
InputElement in3=新的InputElement();
in3.placeholder=“LastName”;
TableCellElement cell3=新元素.td();
cell3.nodes.add(in3);
InputElement in4=新的InputElement();
in4.placeholder=“寄存器编号”;
TableCellElement cell4=新元素.td();
cell4.nodes.add(in4);
InputElement in5=新的InputElement();
in 5.placeholder=“大学”;
TableCellElement cell5=新元素.td();
cell5.nodes.add(in5);
InputElement in6=新的InputElement();
in6.placeholder=“职业”;
TableCellElement cell6=新元素.td();
cell6.nodes.add(in6);
InputElement in7=新的InputElement();
in7.placeholder=“Grade”;
TableCellElement cell7=新元素.td();
cell7.nodes.add(in7);
InputElement in8=新的InputElement();
in8.placeholder=“日期”;
TableCellElement cell8=新元素.td();
cell8.nodes.add(in8);
TableRowElement tr1=新元素.tr();
tr1.classes.add(“表头学生”);
tr1.nodes.add(cell1);
tr1.nodes.add(cell2);
tr1.nodes.add(cell3);
tr1.nodes.add(cell4);
tr1.nodes.add(cell5);
tr1.nodes.add(cell6);
tr1.nodes.add(cell7);
tr1.nodes.add(cell8);
我不想手动创建它,因为我需要在其他具有不同列的表上创建它。我创建这些输入字段的原因是创建筛选。 请不要建议使用innerHtml,appendHtml,因为我必须使用纯dart代码创建它。
我认为可以通过制作列表和使用循环来实现,但我不知道如何实现。请帮助我!

我不确定我是否正确理解您的问题,但我认为这就是您想要的

列表占位符=['№', '姓名、姓氏、注册号、大学、职业、年级、日期];
TableRowElement tr=新元素.tr()
..类。添加(“表头学生”);
占位符。forEach((ph){
tr.append(新TableCellElement()…append(新InputElement()…占位符=ph));
});
查询选择器('table')。追加(tr);
具有更多属性的示例(未测试)

列表字段=[
{'placeholder':'№', 'id':'id1','name':'name1'},
{'placeholder':'Name','id':'id2','Name':'name2'},
{‘占位符’:‘LastName’,‘id’:‘id3’,‘name’:‘name3’},
{'placeholder':'Register No','id':'id4','name':'name4'},
{'placeholder':'University','id':'id5','name':'name5'},
{‘占位符’:‘职业’,‘id’:‘id6’,‘名称’:‘名称6’},
{'placeholder':'Grade','id':'id7','name':'name7'},
{'placeholder':'Date','id':'id8','name':'name8'}];
TableRowElement tr=新元素.tr()
..类。添加(“表头学生”);
字段。forEach((f){
tr.append(新TableCellElement()…append(
新InputElement()
..占位符=f[“占位符”]
…id=f['id']
…name=f['name']
));
});
查询选择器('table')。追加(tr);
如果您的元素创建逻辑变得更复杂,我将为此创建一个函数/方法

main(){
列表字段=[
{'placeholder':'№', 'id':'id1','name':'name1'},
{'placeholder':'Name','id':'id2','Name':'name2'},
{‘占位符’:‘LastName’,‘id’:‘id3’,‘name’:‘name3’},
{'placeholder':'Register No','id':'id4','name':'name4'},
{'placeholder':'University','id':'id5','name':'name5'},
{‘占位符’:‘职业’,‘id’:‘id6’,‘名称’:‘名称6’},
{'placeholder':'Grade','id':'id7','name':'name7'},
{'placeholder':'Date','id':'id8','name':'name8'}];
TableRowElement tr=新元素.tr()
..类。添加(“表头学生”);
字段。forEach((f){
tr.append(新TableCellElement()…append(createInputElement(f));
});
查询选择器('table')。追加(tr);
}
InputElement createInputElement(映射元数据){
var ie=新的InputElement();
如果(元数据['placeholder']!=null)ie.placeholder=元数据['placeholder'];
if(metadata['id']!=null)ie.id=metadata['id'];
if(metadata['name']!=null)ie.name=metadata['name'];
//…更多元素自定义
返回ie;
}

Wow。几乎正是我想要的。但如果我想在我的输入字段中添加其他属性,如id、名称等,该怎么办?唯一可能让我感到复杂的是,如果某个字段必须更改为其他类型的字段。例如,Grade列只有[1,2,3,4]值。因此,使用下拉列表而不是输入更容易筛选表。如果它是最后一个或第一个字段,我可以手动创建它,并用您的代码附加其他字段。但如果我必须更改表中的随机字段,我想我别无选择,只能逐个手动创建:(.你有什么办法可以轻松解决这个问题吗?这也不难。请使用我的上一个版本和
createInputElement()
方法。您可以向元数据中添加一个“类型”字段,或者使用一些其他标准来决定要使用的字段类型。然后在
createInputElement
中添加一个
if
switch
如果(元数据['type']='dropdown'return new SelectElement()…id=元数据['id']…]),否则{return new TextInputElement()…id=metadata['id']…}必须将
createInputElement
的返回类型更改为
H