Asp.net 在VB.Net中创建动态表

Asp.net 在VB.Net中创建动态表,asp.net,vb.net,Asp.net,Vb.net,我是.Net新手,对创建动态表有疑问 我正在创建一个页面,当用户单击按钮时,该页面会向表中添加新行(名字、姓氏、地址等)。我一直在读到,每次回发到动态表时,都必须重新创建行。这就是我正在做的 我一直在测试这个,已经添加了大约40行,当我单击添加新行时,它运行得非常慢,我只能想象添加100行需要多长时间。我假设这是因为重新创建行需要时间 我的问题是,是否有更好的方法或其他方式来完成任务 “****在这里编辑我当前正在做的事情 这是我的表格和按钮控件: 单击按钮时的代码,创建动态表: Dim

我是.Net新手,对创建动态表有疑问

我正在创建一个页面,当用户单击按钮时,该页面会向表中添加新行(名字、姓氏、地址等)。我一直在读到,每次回发到动态表时,都必须重新创建行。这就是我正在做的

我一直在测试这个,已经添加了大约40行,当我单击添加新行时,它运行得非常慢,我只能想象添加100行需要多长时间。我假设这是因为重新创建行需要时间

我的问题是,是否有更好的方法或其他方式来完成任务

****在这里编辑我当前正在做的事情

这是我的表格和按钮控件:

单击按钮时的代码,创建动态表:

  Dim tblrow As TableRow
  Dim tblcell As TableCell
  Dim inputText As TextBox

  tblrow = New TableHeaderRow

  tblcell = New TableHeaderCell
  tblcell.Text = tableCount 'variable used to count rows in the table
  tblcell.HorizontalAlign = HorizontalAlign.Left
  tblrow.Cells.Add(tblcell)

  tblcell = New TableCell
  inputText = New TextBox
  inputText.ID = "txt_" & tableCount
  tblcell.Controls.Add(inputText)
  tblrow.Cells.Add(tblcell)

  table1.rows.add(tblrow)
现在,根据我迄今为止的学习和测试,每次回发时,我都必须重建此表,以便将我输入的所有内容保留在表中

下一个问题是为什么不使用jquery添加另一行,这样就不必进行回发。我已经尝试过这种方法,在我需要将输入到表中的信息放入需要回发的数据库之前,它工作得很好。所以我回到了我原来的问题


注意,如果有更好的方法来解决这个问题,我会洗耳恭听。就像我之前说的,我对这种语言还不熟悉,我只是想学习。

我给你的建议是使用它是一个免费的开源jquery插件,但也可以在商业上买到。它数据加载速度快,具有很多动态特性


如果您了解javascript和jquery,那么这将很容易使用,它是Asp.Net、mvc和php组件,您使用的是windows窗体吗?如果是,请使用ListView控件并将视图(我相信这就是它的名称…)更改为详细信息。然后,您可以使用许多教程中的一个来填充列表:


如果不使用Windows论坛,很抱歉,我看到了VB.net部分并假设。

asp.net是一种服务器端web技术,这意味着您使用的是无状态技术(基本上)。这就是为什么每次回发都要重建所有内容

有几种处理方法:

  • 使用asp.net ViewState并在PageLoad上检查Page.IsPostback
  • 使用jQuery和客户端模板(如Pure)并通过Web服务获取数据
我代表您避免像上面所示那样手动创建表,而是使用模板控件并以声明方式指定行为


例如,当您创建一个DataGrid并使用ViewState时,您不必显式地重新创建DataGrid,因为asp.net在正确使用时会处理它。

对于动态表,您的意思是您正在为表编写HTML;或者你正在使用一个控件,比如gridview,等等?总有更好的方法来完成一些事情。尝试研究AJAX并在客户机上构建表,而不是进行回发。记住jQuery是您的朋友。最终,您的代码可能会变得更简单、更容易理解,并且您将学会一些新技巧。网格视图通常只适用于快速和肮脏的黑客,因为它们很容易陷入混乱?客户端上构建的所有东西都需要重新构建吗?您可以共享一些代码吗?在这里查看一些代码可能很重要,因为有许多因素可能会影响服务器的时间/反应。可能存在冗余代码部分或循环。请分享代码。