• DynamicPopulateExtender 控件调 WebService 的500错误


    一直没怎么去仔细研究 ASP.NET AJAX Control Toolkit,昨天要写一个东西用到了其中的 DynamicPopulateExtender 控件。该控件的作用,是可以异步调用服务器端的方法返回一段 HTML,更新指定的控件内容。通常用 asp:Panel 来配合使用。

    下面是简单的 Markup:

        <asp:Panel ID="panelPrintLinks" runat="server">
            test
        
    </asp:Panel>
        
    <cc1:DynamicPopulateExtender ID="dp1"
            runat
    ="server" Enabled="True" 
            TargetControlID
    ="panelPrintLinks"
            ServiceMethod
    ="GetPrintLinks">
        
    </cc1:DynamicPopulateExtender>    

    其中 ServiceMethod 属性指定了对应的 WebService 方法,可用当前页面上的某个方法加上标签实现:

    public partial class ViewNodes: PageBase
    {
        [WebMethod()]
        [ScriptMethod()]
        
    public static string GetPrintLinks(string contextKey)
        {
            
    return "<a href='http://www.google.com'>Google</a>";
        }
    }

    客户端在需要的时候可以用 JavaScript 去触发这个内容更新。代码如下:

        <script type="text/javascript">
            
    function ShowPrintLinks(contextKey)
            {
                
    var behavior = $find('dp1');
                
    if (behavior)
                {
                    behavior.populate(contextKey);
                }
            }    
        
    </script>

    这里的参数名 contextKey 我原先写的不是这个,结果一直报 "WebService 调用错误: 500" 或者 12031 之类的错误。
    开始,以为是 Authentication 的问题,但是在 web.config 里禁用了 FormsAuthentication 错误信息依旧。
    最终发现原来这个 contextKey 这个参数名必须一字不差,而且参数个数也只能一个。WebService 方法的签名也要完全一样。只有参数名可改。

  • 相关阅读:
    复制
    rpm 软件包管理
    xfsdump 备份文件系统
    dhcp服务器(一)
    【转】kafka集群搭建
    postgresql主从配置
    centos7 安装配置postgresql
    centos7 安装配置zookeeper
    zookeeper
    piplinedb 安装配置
  • 原文地址:https://www.cnblogs.com/RChen/p/1218169.html
Copyright © 2020-2023  润新知