2

我目前正在构建一个具有可扩展行的 Gridview。每行包含一个动态创建的表单元素面板。现在,我有一个 javascript 函数,当在 Gridview 行上单击图像时,它会展开(或者在我的情况下,使其可见)面板。

我的问题是......有没有更有效的方法来做到这一点。当用户单击展开按钮时,有没有一种方法可以简单地使用充满文本框和下拉列表的面板来简单地创建行,而不是从一开始就提取所有数据并构建每个新行?”

我想通过这种方式而不是我目前的方式来限制服务器调用,循环遍历每一行并使用表单元素创建一个新面板并将其插入隐藏的行中。

4

4 回答 4

1

实际上,它的性能并不差,因为我的原始 SQL 查询可以填充每一行,并且我在 Gridview 上启用了分页。我只是想知道是否可以使用 PageMethods 或某种 JSON/AJAX 解决方案即时构建它们。我什么都没看到,但是……值得一试。

于 2008-11-20T21:48:21.270 回答
1

您可以覆盖 RowdataBound 事件,然后根据单元格中的数据添加所需的任何控件。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

于 2010-06-09T04:13:45.927 回答
0

个人尝试动态创建数据很可能会导致用户体验变慢。

当我做你所描述的事情时,我通常使用中继器,这样我就可以做一个模板布局,立即简单地定义所有需要的元素,并处理绑定操作。

否则,我会想象您的方式不会像现在这样执行得太慢。

于 2008-11-20T21:44:01.687 回答
0

实际上,最近将其用于返回表单结构的 AJAX 处理程序。它是按需提供的,并且运行良好。只需通过 jQuery 调用 $ajax,返回一个 HTML 结构,注入 DIV。它对实际功能有点限制,所以要小心。

于 2010-10-09T01:29:19.697 回答