2012-03-29 2 views
1

Ich bekomme PageMethods ist nicht Javascript-Fehler in meinem Sharepoint 2010 Webpart definiert. Grundsätzlich habe ich Webpart erstellt, der die Google Map anzeigt. Wenn ich auf den Marker der Google Map klicke, möchte ich das serverseitige Event aufrufen. Ich habe die jQuery für das gleiche implementiert. Ich verwende die PageMethods, um die Servermethode aufzurufen. Unten ist der Code, den ich nur von einer Blog-Seite geholt habe. Ich habe auch das Scriptmanager-Tag auf meiner Seite mit dem Attribut EnablePageMethods auf True gesetzt.Fehler "PageMethods ist undefined" in Webpart für Sharepoint 2010

Script Block:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     // Initialization        
     $("#ajax_loading_image").hide(); 
     // mousemove event 
     $().mousemove(function (e) { 
      window.status = e.pageX + ', ' + e.pageY; 
     }); 
     // hook up the click event    
     $("#execute_page_method").click(function() { 

      $("#message").text("I'm working..."); 
      $("#ajax_loading_image").show("fast"); 
      $("#execute_page_method").hide("fast"); 

      // Call some page method... 
      PageMethods.ProperMethodName("string", function (result, userContext, methodName) { 

       $("#ajax_loading_image").hide("slow"); 
       $("#execute_page_method").show("slow"); 

       if (result.Success == true) { 
        alert("true"); 
        $("body").css("background", "#CAFFD8"); 
       } 
       else { 
        $("body").css("background", "#CAFFFF"); 
       } 

       $("#message").text("This took me " + result.Time + " milliseconds... "); 

      }); 
      return false; 
     }); 
    }); 
</script> 

<div> 
    <a id="execute_page_method" href="http://jquery.com/">Click!</a> 
</div> 

Code Behind events: 
public class MethodReturnedValue 
     { 
      public int Time { get; set; } 
      public bool Success { get; set; } 
     } 

     [WebMethod(true)] 
     public static MethodReturnedValue ProperMethodName(string param) 
     { 
      Random random = new Random(); 
      MethodReturnedValue retVal = new MethodReturnedValue(); 
      retVal.Time = random.Next(5000); 
      Thread.Sleep(retVal.Time); 
      if (random.Next() % 2 == 0) 
      { 
       retVal.Success = true; ; 
      } 
      else 
      { 
       retVal.Success = false; 
      } 
      return retVal; 
     } 

Der gleiche Code funktioniert, ist in meinem asp.net appication fein und nicht in meiner Sharepoint-Anwendung arbeiten. Kann mir bitte jemand dabei helfen.

Antwort

0

Für Seitenmethoden muss die Webmethode in der Datei .aspx.cs enthalten sein.

Schreiben Sie in SharePoint (bei Verwendung des Veröffentlichungsseitenlayouts) die Webmethode in das cs der Seite.

Aber wenn Sie Web Part Page Layout verwenden, dann wird es nicht funktionieren.

Verwandte Themen