欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net使用母版页中使用ajax脚本取数据

程序员文章站 2024-03-07 14:27:51
方法如下:   1、 页面中拖入scriptmanager。以便于使用ajax脚本。同时放在其它客户端控件,用于触发netpost方法。这里不列出客户端控件。 复制代码 代...
方法如下:
  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请参考: