如何(不是onClick)调用jquery ajax并填充客户端var?

时间:2011-11-04 13:12:56

标签: jquery asp.net ajax

我读了一些jqueryAjax的例子。 所有这些都展示了如何调用ajax onClick事件然后填充html元素。

然而,我想要一些东西。 我有一个客户端var(MessageList)。我在JS上进行迭代,当我到达终点时,我想从服务器上重新填充它。

我写了aspx页面。 JS正在加价。 在后面的代码中,我写了一个名为“FillMessages()"的[WebMethod],它返回字符串(Json)。

我如何使用此webMethod返回的json填充MessageList,仅当客户端完成迭代当前MessageList

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以这样做:

$(document).ready(function(){

    var list = [];

    //parses the list
    function parseList(){
       $.each(list, function(index, obj){
            //do something
        });
    }

    //gets the json and class parse (could be added to a seperate function)
    $.getJSON('test.apsx/FillMessages', function(data){
        list = data;
        if(list.length > 0) {
            parseList();
        }
    });

});

不要忘记准备你的网络方法,通过以下方式来装饰它们:

[WebMethod(EnableSession = true)]        
[ScriptMethod(UseHttpGet =false, ResponseFormat = ResponseFormat.Json)] 

答案 1 :(得分:0)

如何触发第一个电话? 看看成功处理程序。

function getYouTubeVideoData(page) {
    $.ajax({
        url : 'http://gdata.youtube.com/feeds/api/videos',
        type : 'get',
        contentType: 'application/json',
        dataType : 'jsonp',
        data: {
            v:2,
            'start-index': page*50+1,
            'max-results': 50,
            format:1,
            alt:'jsonc',
            key:'Your API Key',
            q: "Led Zepplin" 
        },
        success : function(response) {
            result_iterator(query, page, response);
            getYouTubeVideoData(page+1);       
        },
        error: function(xhr, textStatus, errorThrown ) {
            logger("We had trouble getting data from YouTube..." +  errorThrown);
        }
    })
})