程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0實現無刷新客戶端回調

ASP.NET 2.0實現無刷新客戶端回調

編輯:關於ASP.NET

Asp.Net2.0的客戶端回調是一種很讓人激動的方法,他能夠讓我們控制要提 交什麼數據給服務器而不用提交整個頁面,同時服務器也只返回你所需要的數據 而不要發回整個頁面。

首先我們要說一個很重要的方法:GetCallbackEventRefernce.我把我的理解 寫出來,可能是錯誤的,懇請指出,非常感謝!

GetCallbackEventReference首先實現讓客戶端腳本有能力傳遞參數給服務器端的RaiseCallbackEvent方法,然後返回RaiseCallBackEvent方法的值給你在 GetCallbackEventRefernce方法中注冊的一個參數(其實也是一個你要在客戶端 寫的腳本)。調用GetCallbackEventRefernce你必須從客戶端腳本中傳遞給他兩 個參數,一個是要傳遞給RaiseCallbackEvent事件的值,一個是context.

他的參數意義如下:

第一個:實現了ICallbackEventHandler借口的頁面或者服務器控件,寫this 代表但前頁面。

第二個:代表你從要從客戶端傳遞給服務器RaiseCallbackEvent方法的值

第三個:你要在客戶端寫的一個js函數,同時,服務器也會把計算得到的數 據傳遞給這個函數做為這個函數的參數。

第四個:context具體什麼意思我也不太清楚GetCallbackEventRefernce發送 到了客戶、端的代碼是這樣的:

WebForm_DoCallback ('__Page',arg,ReceiveServerData,context,null,false)

那麼我們要怎麼樣做才能夠從客戶端調用他呢?看到了三中方法:

第一種:在後台寫個public string,在Page_Load中給他賦值為: =Page.ClientScript.GetCallbackEventReference(this, "message", "ShowServerTime", "context");注意在這裡是Page.ClientScrip,因為他會返回 個ClientScriptManager,ClientScriptManager管理所有的客戶端腳本。然後在 前台某個按鈕的onclick事件裡<%=那個public後台字符串%>.做個小實驗 代碼如下:

前台ServerTime.aspx:為了方便去掉好多沒用的html

<%@ page language="C#" CodeFile="ServerTime.aspx.cs" Inherits="ServerTime_aspx" %>
<html>
<head>
<title>Server Time</title>
<script language="javascript">
function GetServerTime()
{
  var message = '';
  var context = '';
  <%=sCallBackFunctionInvocation%>
}
function ShowServerTime(timeMessage, context) {
  alert('現在服務器上的時間是:\n' + timeMessage);
}
</script>
</head>
<body>
<form id="MainForm" runat="server">
<input type="button" value="得到服務器端時間" onclick="GetServerTime();" />
</form>
</body>
</html>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved