0

我有一个Asp.Net页面。

<html>
<body>
 <div>
    <!-- Main body -->
 </div>
 <div>
    <!-- Right panel -->
 </div>
</body>
</html>

上面的页面是html页面。

但它实际上在Asp.Net

对于主页面,后面会有代码填充正常内容并加载页面的内容。

但是对于右侧面板,逻辑相当复杂,需要一些时间才能得到显示内容的结果。

所以,我想只在主页完成加载后加载页面的那一部分。

我已经尝试过Asp.Net AJAX使用update panel,但我还没有找到完成这项工作的正确行为。

所以,我正在考虑使用正常ajax,但我不知道从哪里开始。

所以,我问有什么办法可以做到这一点,并且..任何可用的示例代码。

4

2 回答 2

1

您可以尝试任何 javascript 框架。

如果你使用 jQuery,你可以尝试:

Set an id on your div:

<div id="right-panel">

Then use this jQuery to load the data for the panel:

$().ready(function() { $('#right-panel').load('http://path/to/your/script') } );

See the jQuery docs for more info.

于 2012-07-04T03:46:47.283 回答
0

嗯……“普通的 AJAX”?Microsoft AJAX 是“普通 AJAX”。更新面板执行异步回发,这与使用 WebMethod 非常不同 - 这可能是您想要的。您仍然可以使用 Microsoft AJAX 调用 WebMethod。事实上,Microsoft AJAX 控件工具包有一个扩展器,可让您插入 WebMethod 调用。它被称为DynamicPopulateExtender

DynamicPopulate 是一个简单的扩展器,它用 Web 服务或页面方法调用的结果替换控件的内容。该方法调用返回一个 HTML 字符串,该字符串作为目标元素的子元素插入。

<ajaxToolkit:DynamicPopulateExtender ID="dp" runat="server"
    TargetControlID="Panel1" 
    ClearContentsDuringUpdate="true" 
    PopulateTriggerControlID="Label1" 
    ServiceMethod="GetHtml" 
    UpdatingCssClass="dynamicPopulate_Updating" />

要使其在“页面加载”上运行,只需在 ScriptManager 标记之后添加此脚本:

<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_pageLoaded(PageLoadedHandler); 

    function PageLoadedHandler(sender, args) { 
        var behavior = $find('dp'); // or whatever you named it
        if (behavior) { 
            behavior.populate(''); // or pass in whatever key you want
        } 
     } 
</script>
于 2012-07-04T03:29:33.073 回答