程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net使用母版頁中使用ajax腳本取數據

asp.net使用母版頁中使用ajax腳本取數據

編輯:ASP.NET基礎
方法如下:
  1、 頁面中拖入ScriptManager。以便於使用Ajax腳本。同時放在其它客戶端控件,用於觸發NetPost方法。這裡不列出客戶端控件。
復制代碼 代碼如下:
<asp:ScriptManager ID="smMaster" runat="server" ScriptMode="Auto" EnablePageMethods="true">
</asp:ScriptManager>

  2、在Master源碼中編寫js
復制代碼 代碼如下:
function NetPost() {
//創建實例
var wRequest = new Sys.Net.WebRequest();
//設置請求URL
wRequest.set_url("../CheckState/CheckNetState.aspx");
//定義參數
var body = "ip=192.168.1.1";
//設置參數
wRequest.set_body(body);
//設置請求方式
wRequest.set_httpVerb("POST");
//請求完成處理函數
wRequest.add_completed(PostNet);
//執行請求
wRequest.invoke();
}
function PostNet(exector, eventArgs) {
//執行器的狀態E :responseAvailable、aborted 或 timedOut。
  //僅當 responseAvailable 返回 true 時,事件處理程序才能訪問執行器的其他響應信息。
if (exector.get_responseAvailable()) {
  //判斷狀態是否正常
if (exector.get_statusCode() == '200') {
     //得到返回值
var returnInfo = exector.get_responseData();
if (returnInfo == "0") {
      //顯示相關內容
}
}
}
}

  3、add_completed()說明:
   注冊的事件處理程序函數必須接受兩個參數:
  1) 對發出網絡請求的執行器的引用。通過訪問執行器,可以檢查其狀態和檢索響應數據。
  2) eventArgs 參數,它由引發完成請求事件的執行器設置。
  4、編寫請求頁面
    請求地址為一個頁面,沒有任何HTML內容,僅在Page_load方法中編寫代碼。本例中的請求頁面放在根目錄的CheckState文件夾下,名稱為:CheckNetState.aspx 。
  5、請求頁面代碼如下,主要實現Ping功能。
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Iaddtech.Environmental.Web.UI.CheckState
{
public partial class CheckNetState : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
//得到參數
string ip = Request.Form["ip"];
int isConnect = PingServer(ip);
//輸入返回值
Response.Write(isConnect.ToString());
Response.End();
}
private int PingServer(string ip)
{
System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions();
options.DontFragment = true;
string data = "t";
byte[] buffer = System.Text.Encoding.ASCII.GetBytes(data);
int timeout = 1000; // Timeout 時間,單位:毫秒
System.Net.NetworkInformation.PingReply reply = p.Send(ip, timeout, buffer, options);
if (reply.Status == System.Net.NetworkInformation.IPStatus.Success)
return 0;
else
return 1;
}
}
}

  6、用其它頁面套用母版頁後,測試。
Sys.Net.WebRequest請參考:http://msdn.microsoft.com/zh-cn/library/bb310979.aspx
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved