【问题标题】:ASP.Net: How to add rows to a repeater using DOM/Javascript?ASP.Net:如何使用 DOM/Javascript 向转发器添加行?
【发布时间】:2009-01-14 06:58:02
【问题描述】:

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

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

是否有某种方法可以在客户端完成此操作,以提高向转发器/网格视图添加行的性能。我们使用的是 Asp.net 2.0

【问题讨论】:

    标签: asp.net ajax gridview updatepanel repeater


    【解决方案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
        }
    }
    

    你只需要塞住这些洞!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        • 2021-03-01
        • 2019-07-01
        相关资源
        最近更新 更多