הפעלת מתודות סטטיות באמצעות ScriptManager

3 במאי 2009

4 תגובות
כדי להפעיל מתודות בצד השרת באמצעות ה ScriptManager,
אפשר לכתוב WebService, או להפעיל מתודה סטטית בדף.
 
התהליך הוא מאוד פשוט:
 
1. הגדרה של מתודה סטטית בעמוד: 
 

[WebMethod]

public static string Hello(string name)

{

    return "Hello " + name;

}

 
 
2. להוסיף ScriptManager לעמוד ולהוסיף לו EnablePageMethods
 

<asp:ScriptManager ID="ScriptManager1"

    runat="server" EnablePageMethods="true">

</asp:ScriptManager>

 
 
 3. להוסיף פונקציה ב JS שתפעיל את המתודה בצד השרת 
 

<script type="text/javascript">

    function CallServer() {

        PageMethods.Hello("shlomo", onSucsses, onFail);

    }

 

    function onSucsses(resalt) {

        alert(resalt);

    }

 

    function onFail(err) {

        alert(err);

    }

</script>

 
 
קל ופשוט. 
 
ותודה לפיני הגאון שעזר לי לכתוב את הפוסט
 
עריכה:
לבקשת שחר אני מצרך את הדוגמא להורדה.
הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

4 תגובות

  1. shachar5 במאי 2009 ב 8:58

    שלום.
    השתמשתי בדוגמא שלך, ואנ מקבל שגיאה ש:
    PageMethods is undefined

    הגב
  2. Shlomo5 במאי 2009 ב 9:20

    ההנחה שלי ששכחת לעשות EnablePageMethods="true"
    בכל מקרה אני מצרף את הדוגמא להורדה,

    (הלינק נמצא בסוף הפוסט)

    הגב
  3. תקוה22 ביולי 2009 ב 12:36

    ניסיתי, ואני לא "נכנסת" לפונקציית צד שרת. מצרפת קטע קוד, תנסה בבקשה לזהות למה לא עובד:
    CODEBEHIND
    using System.Web.Services;
    using System.Web.Script.Services;

    .
    .

    [WebMethod]
    public static void updateComment(string remarker, string commentToAdd, int logId)
    {
    string addition = remarker +"( "+ DateTime.UtcNow.AddHours(2).ToString() +"): " + commentToAdd;
    Log.updateComment(logId, addition);

    }

    בדף:

    הערות אחרי שיחה טלפונית




    .
    .
    .

    .
    .

    הגב
  4. תקוה10 באוגוסט 2009 ב 14:04

    אחרי ששברתע[י את הראש, מצאתי שהיה חסר לי הHANDLERS והMODULES ב WEB.CONFIG
    אולי כדאי להוסיף את הנקודה הזו

    הגב