用jquery ajax调用替换项目数据绑定

时间:2009-04-01 11:50:19

标签: asp.net jquery json

我们有一个非常慢的ASP.NET页面和一个转发器。它很慢,因为大多数处理都是在转发器的ItemDataBound事件中完成的。所有这些处理只需要在每一行中显示2个总计。

为了提高吞吐量,加载没有ItemDataBound事件且没有2个总计的转发器可能是个好主意。 而不是在浏览器中加载页面,可以从每一行进行AJAX调用,并且可以同步显示总数。

您是否可以指出实现此类解决方案的任何代码示例。

谢谢!

1 个答案:

答案 0 :(得分:0)

确实,jQuery.ajax()调用在这里是个不错的选择。您可以使用它来调用代码隐藏中定义的WebMethod

至于服务器端计算,您有几个选项:

  1. 将计算所需的值嵌入到每行中的HiddenFields中,并通过ajax()调用中的参数将它们传递给webmethod。

  2. 使用与上述类似的方法(HiddenField)为行传递唯一ID,并根据该ID进行计算。

  3. 至于代码,它可能看起来像这样:

    $('span.show-total').hover(
        function(){
    
            // Show panel here
    
            $.ajax({
                type: "POST",
                url: "PageName.aspx/MethodName",
                data: '{"uniqueId":"' + $(this).find('input[id$=YourHiddenFieldID]').val() + '"}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    // Do something interesting here.
                    alert(msg.d);
                }
            });
        },
        function(){
           // Hide panel here
        }
    );