如何向动态构建的表添加新行/转到下一行
本文关键字:一行 新行 动态 构建 添加 | 更新日期: 2023-09-27 18:12:17
好的,所以我有一个表,我正在动态构建。我一直在开发的代码在构建表和获取数据填充表方面没有问题。然而,我的问题是,当表被多行填充时,或者假设有多行,它只是将表中假设的新行添加到第一个表的末尾。所以我的问题是我在代码中做错了什么,以及我如何才能使表正确填充,以便它添加新行,而不仅仅是将其添加到第一行。
我的代码如下:public void UpdateTableControls()
{
try
{
machine = inputsService.GetMachineSiteDetails(SiteID);
if (machine.ToString() != "")
{
foreach (Machine Machine in machine)
{
AddNewRow1(Machine);
}
}
else
{
logger.ErrorFormat("UpdateTableControls fail, no machine in database.");
}
}
catch (Exception ex)
{
logger.ErrorFormat(
"UpdateTableControls - Exception adding either new machine type or machine model, {0}.", ex);
}
}
这将获得假定每台机器创建一行的机器数量。它是通过web服务从数据库获取的。
private void AddNewRow1(Machine Machine)
{
//start a new row
TableCell site = new TableCell();
TableCell name = new TableCell();
TableCell type = new TableCell();
TableCell model = new TableCell();
TableRow tr = new TableRow();
Literal breakline = new Literal();
breakline.Text = "<br />";
Literal breakline1 = new Literal();
breakline1.Text = "<br />";
//site name column
site.RowSpan = 2;
site.Controls.Add(AddSiteField(Machine));
tr.Controls.Add(site);
//machine name
name.RowSpan = 2;
name.Controls.Add(AddMachineField(Machine));
tr.Controls.Add(name);
//machine type name
type.RowSpan = 2;
type.Controls.Add(AddMachineTypeField(Machine));
type.Controls.Add(breakline);
type.Controls.Add(AddTypeComboBox(Machine));
tr.Controls.Add(type);
//machine model name
model.RowSpan = 2;
model.Controls.Add(AddMachineModelField(Machine));
model.Controls.Add(breakline1);
model.Controls.Add(AddModelComboBox(Machine));
tr.Controls.Add(model);
AssignPlaceHolder.Controls.Add(tr);
}
此方法创建并填充数据行,并将其发送给占位符。
我猜问题是我要么不添加中断点或新行,要么不将上面的方法识别为新行。
编辑:我想要达到的是这样的东西
Site |机器名称|机器类型|机器型号Site |机器名称|机型|机型
我得到的是这个
站点|机器名称|机器类型|机器型号|站点|机器名称|机器类型|机器型号
没有新的行/行
任何帮助或建议都是非常感谢的。谢谢你。我想你可以使用tablelow。如何:动态添加行和单元格到表
<br/>
与向表中添加新行不同。
你想做什么-每台机器添加两行吗?第一行包含文本和第二有下拉列表在最后2列?为此,需要生成2个TableRow对象,并将下拉列表添加到第二行。因此,Type和model不具有rowspan=2。
或者,您的问题是,无论web服务返回的机器数量如何,只出现一行?
一旦你添加了这些下拉菜单,你认为他们会做一些有趣的事情吗?除非AddTypeComboBox中有一些非常棘手的代码会做自动回转,否则我看不到你在做什么。如果你使用了DataGrid, GridView等,你可以将它们数据绑定到包含控件的模板上,并且它可以对下拉列表的更改做出反应。
切换到ASP。NET MVC和使用AJAX。所有的酷孩子都这么做。