1

我知道 asp.net 转发器没有客户端对象模型,我们一直致力于提高许多具有转发器/网格视图的页面的性能,这些页面具有通过服务器端代码向它们添加行的功能。

我们已经使用更新面板来 ajaxify 将行添加到转发器/网格视图的功能,但是服务器跳闸和在浏览器上渲染所花费的时间是不可接受的。

有什么方法可以在客户端完成,以提高向转发器/网格视图添加行的性能。我们正在使用 Asp.net 2.0

4

2 回答 2

1

UpdatePanels 仍然执行整页回发,然后简单地更新面板内的任何内容。这就是你减速的来源。

至于使用 AJAX 来加快速度,您将希望使用直接 AJAX 调用来仅请求您需要的数据。您可以使用 ASP.NET AJAX 做到这一点。

在 page_load 事件处理程序中,注册您的 AJAX。(VB.NET)

Ajax.Utility.RegisterTypeForAJAX(GetType(ThisPageClass))

然后,创建一个可由 AJAX 访问的函数,如下所示:

<Ajax.AjaxMethod()> _
Public Function GetNewRows() As String
    ''//do stuff
    Return jsonObj
End Function

然后,在客户端,您可以这样调用它:

ThisPageClass.GetNewRows(someCallbackFunction);

function someCallbackFunction(result) {
    var json = ParseJSON(result.value);
    for(var i=0; i<json.length; i++) {
        // do whatever
    }
}

你只需要塞住这些洞!

于 2009-01-14T07:14:32.157 回答
0

我发现Repeater控件没有可用于执行客户端操作(例如添加行和内容)的DOM,唯一简单的出路(由于某些限制)是使用GridView控件代替然后使用它的 DOM,这就是我最终所做的。

于 2009-02-13T15:13:25.623 回答