ASP.NET AJAX(WebMethod與PageMethods)

出自ProgWiki

跳轉到: 導航, 搜尋

目錄

用途

範例

與scriptaculous.js整合做Slider測試

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
        <br />
 
       <div id="track1" style="width:200px;background-color:#aaa;height:5px;">
            <div id="handle1" style="width:5px;height:10px;background-color:#f00;cursor:move;"> </div>
        </div>
        <div id="debug1" style="padding-top: 5px;"></div>
    </form>    
 
 
  <script type="text/javascript" language="javascript">
  // <![CDATA[
        function UpdateMessages(result)
        {
            $get('Label1').innerHTML = result;
        }
 
        new Control.Slider('handle1','track1',
            {
                onSlide:function(v)
                {
                    $('debug1').innerHTML='slide: '+v
                },
                onChange:function(v)
                {
                    //$('debug1').innerHTML='changed! '+v;
                    PageMethods.SetSlider('track1',v, UpdateMessages);
                }
            }
        );
  // ]]>         
  </script>    
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
 
</body>
</html>

Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Services;
 
 
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
 
	[WebMethod]
	static public string SetSlider(string id, string value)
	{
		return string.Format("{0} - {1}",id, value);
	}
}

FAQ

找不到型別或命名空間名稱 'WebMethod' (您是否遺漏 using 指示詞或組件參考?)

using System.Web.Services;

'PageMethods'未被定義

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
個人工具
名字空間
變換
動作
導航
分類
其他
技術類News或部落格
工具箱