在asp.net中在运行时添加控件

时间:2013-01-01 13:19:24

标签: asp.net web-applications c#-3.0

我希望通过以下格式的代码动态添加控件

lblName   txtName       lblSubject    txtSubject         btnAddNewRow/linkAddNewRow

这样btAddNewRow / linkAddNewRow在当前行下面的运行时生成新行。 有人可以用最好的方式帮助。 是否可以仅使用标签而不是表格,即td th用于格式化。我使用行只是为了重要。我不打算使用表行。 请将前缀视为控件类型。 感谢。

1 个答案:

答案 0 :(得分:0)

基本上,如果您的意图与数据处理有关,那么DataGrid和GridView将是不错的选择。

动态添加ROW而不是表实际上并没有太大的不同,我可以说你会发现它与DataGrid和GridView相比并不完全合适。

如果你真的想动态添加行,每次你点击什么按钮(添加行按钮或其他)页面都会回发,你刚刚添加的行将会消失。

人们通常会做的是在创建表格和添加行时使用会话来存储整个表格。

在Page_Load中,在添加行之前,他们将从会话中检索整个表。这有助于将数据保存在原始行中。


但是这对于你处理每个行控件的ID,格式,样式等来说可能很麻烦,并且想想当你想要处理验证时,它可能是地狱。

我不是说这是不可行的,因为我经历了这个。

另一种更简单的方法是通过在自定义控件中放置包含验证,样式和其他所需内容的整行来创建自定义控件,然后在页面中动态添加它(也需要Session或ViewState来存储它,同样的事情会发生。)

希望这可以帮助您重新考虑您的设计