Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过jQuery AJAX加载ASP.Net用户控件_Asp.net_Jquery_Ajax - Fatal编程技术网

通过jQuery AJAX加载ASP.Net用户控件

通过jQuery AJAX加载ASP.Net用户控件,asp.net,jquery,ajax,Asp.net,Jquery,Ajax,我有一些小模块(比如iGoogle),它们当前通过调用LoadUserControl方法的页面加载,并将该控件加载到占位符中。我需要将该实现切换到通过jQueryAjax请求加载控件。目前的问题在于,当我执行ajaxget时,我可以通过将模块附加到内容中来加载模块,但是没有任何功能可以在正常加载的控件上工作。例如,当我在DDL上选择不同的选项时,页面将刷新,并且没有任何更改。我怀疑是因为当我通过AJAX执行加载时,这些方法没有被绑定。此外,当我使用此方法时,我的flash内容不会被加载 我是做错

我有一些小模块(比如iGoogle),它们当前通过调用LoadUserControl方法的页面加载,并将该控件加载到占位符中。我需要将该实现切换到通过jQueryAjax请求加载控件。目前的问题在于,当我执行ajaxget时,我可以通过将模块附加到内容中来加载模块,但是没有任何功能可以在正常加载的控件上工作。例如,当我在DDL上选择不同的选项时,页面将刷新,并且没有任何更改。我怀疑是因为当我通过AJAX执行加载时,这些方法没有被绑定。此外,当我使用此方法时,我的flash内容不会被加载

我是做错了什么,还是有更好的解决办法

 $.ajax({
   url: '/modules/UserModules.aspx?CID=12345',
    type: "GET",
    dataType: "html",
    success: function(data) {
        $('#column1').append($(data).find('div#lm li'));
        $('#column2').append($(data).find('div#cm li'));
        $('#column3').append($(data).find('div#rm li'));
        alert('Load was performed.');
    }

});

当您发回服务器时,服务器不知道您的用户控件,因为它是动态添加到页面的。实际上,您需要呈现UC HTML,然后将部分呈现的HTML添加到页面中


我建议不要发回服务器,而是在使用DDL进行选择时使用jQuery来检索任何数据。

我不确定是否看到使用UC进行此操作的实用程序。有很多方法可以做到这一点。正如Jamie所说,您可以拥有一个使用web方法的plain.aspx页面。asmx页面。您也不能使用web方法,只需像使用php或经典ASP那样直接编写字符串结果并对其进行处理(但这不应该是您的首选!)

但是,您可以从中获得的最重要的东西是调试。在UC代码中添加断点以跟踪服务器端。使用Firebug:打开它,选择console并观察您的GET请求是否真的在做它们需要做的事情。现在,您很少需要警报进行调试