2015-11-11 31 views
1

我想要介绍一下创建ASP.NET Web应用程序的方法。使用C#代码隐藏向ASP.NET Web应用程序动态添加表格

应用程序(在.aspx.cs文件中)设计用于在一组文本文件中查找目录。对于每个文本文件,我想使用文本文件中的信息在.aspx文件中创建/修改表格。

到目前为止,我已经创建了具有ID属性的asp:Table控件。然后使用TableRow & TableCell方法在我的.aspx.cs文件中建立一个表格,并使用ID属性将它们添加到表格中。

这一切都很好,并全部用硬编码。我已经开始取消它并创建一个for循环来循环查找文本文件的目录。然后抓取文本文件的名称,我想用它来修改具有相同名称的asp:table控件。但是我不能在文本文件名称上调用同一个表格方法,因为它是一个字符串。

所以最后我的问题是,这是正确的方法吗?我在表格的.aspx文件中硬编码asp:table controls我会知道(文本文件名称)的名称,然后尝试使用C#后面的代码更新它们?如果是这样,它只是在C#中使用将绑定到asp:table控件的文本文件名创建一个表实例的情况?

对不起,如果这是非常复杂 - 今天第一次使用asp.net。

+1

这并不是说我得到的问题100%,但你为什么不只是去一个单面板,然后在需要时创建表格,行和单元格,以及何时可以设置它们,然后将它们添加到面板中。 IT也可能会更好地使用中继器,这取决于您的数据,虽然不能告诉太多的问题。 –

+0

这就是我最后所做的。我试图在.aspx文件中完成一半的工作,在.aspx.cs文件中完成一半的工作,这让我感到困惑。我在.aspx文件中添加了一个主面板,然后继续执行.aspx.cs文件中的所有工作。谢谢。 – Garreth

+0

是的,这应该工作得很好。如果你真的做了一半,你可以得到你的数据并将其提供给中继器,并使用他们的OnItemDataBound来播放数据等。 –

回答

1

您应该能够从处理文件的循环内的代码创建表格控件。您可以在标记中使用占位符控件,并将表格控件添加到占位符的控件集合中。

在的.aspx: <asp:PlaceHolder runat="server" ID="tablePlaceHolder"></asp:PlaceHolder>

在.aspx.cs:

foreach (var file in files) { 
    var id = GetIdFromFileName(file); // derive ID from file 
    var tblControl = new Table {ID = id}; 
    tablePlaceHolder.Controls.Add(tblControl); 

    // create rows and cells for the table control as appropriate 
    // based on the content of the file 
    } 
相关问题