我是.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添加另一行,这样就不必进行回发。我尝试过这种方法并且运行良好直到我需要将输入表中的信息放入需要回发的数据库中。所以我回到原来的问题。
注意,如果有更好的方法来接近这个我的耳朵。就像我之前所说的,我是这种语言的新手,我只是想学习。
答案 0 :(得分:2)
我的建议是使用JqGrid它是一个免费的开源jquery插件,但也可以商业化。它的数据加载速度很快,并且具有很多动态功能
如果您了解javascript和jquery,那么这将很容易使用,它来自Asp.Net,mvc和php组件
答案 1 :(得分:1)
您使用的是Windows窗体吗?如果是,请使用ListView控件并更改视图(我相信这就是所谓的...)以获取详细信息。然后,您可以使用诸如this之类的许多教程中的一个来填充列表:
如果没有使用Windows论坛抱歉,我看到了VB.net部分并假设。
答案 2 :(得分:0)
asp.net是一种服务器端Web技术,这意味着您正在使用无状态技术(基本上)。这就是为什么你必须在每次回发时重建一切。
有几种方法可以解决这个问题:
我代表您将避免像上面显示的那样手动创建表,而是使用模板化控件并以声明方式指定行为。
例如,当您创建DataGrid并使用ViewState时,您不必显式重新创建DataGrid,因为asp.net在正确使用时会处理它。