【问题标题】:how to call a pagemethod in a user control using jquery?如何使用 jquery 在用户控件中调用页面方法?
【发布时间】:2011-03-21 12:19:35
【问题描述】:

我有一个带有pagemethod 的用户控件。
我想使用 jquery 的 ajax() 方法从我的页面调用这个 pagemethod?

我该怎么做?

谢谢,
西德

【问题讨论】:

    标签: jquery asp.net pagemethods


    【解决方案1】:

    用户控件上不能有 PageMethods。他们必须在页面上。

    【讨论】:

      【解决方案2】:

      使用这个

      $.ajax({
        type: "POST",
        url: "PageName.aspx/MethodName",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
          // Do something interesting here.
        }
      });
      

      【讨论】:

        【解决方案3】:
        $.ajax(
        {
            url: "/Service.asmx/Getuggestions",
            type: "POST",
            async: false,
            contentType: "application/json",
            data: "{ text: \"" + request.term + "\", count: 10 }",
            success: function (data)
            {
            var items = new Array();
        
            for (var i = 0; i < data.d; i++)
                items[items.length] = { value: data.d[i].Code, label: data.d[i].Text };
        
            response(items);
            },
            error: HandleAjaxError
        });
        

        【讨论】:

        • 他说的是PageMethods,而不是webservices。
        • 当然 - 您可以以类似的方式调用 PageMethod。
        • 我认为问题在于,如果您在用户控件中有 PageMethod,并且如果您试图从该用户控件嵌入的 JS 中触发它,那么您没有任何明智的价值可以放入“网址”。您可以将页面名称放在那里,但这不会让您进入用户控件的“页面方法”,因为它不存在,它在用户控件中。我认为你必须使用网络服务来解决这个问题。除非有人知道如何让它工作......这就是最初的问题。
        【解决方案4】:

        页面方法必须是 static 和 public ,还需要用 WebMethod 属性修饰,例如:

        [WebMethod(EnableSession=true)]
            public static void PageMethod(int Parameter)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-09
          • 2014-03-09
          • 1970-01-01
          相关资源
          最近更新 更多