zoukankan      html  css  js  c++  java
  • 母版页中使用ajax脚本取数据

      因母版页继承自UserControl,我们无法像正常页面那样使用Jquey或Ajax的PageMethods等无刷新方法取数据。不过可以使用ajax提供的Sys.Net.WebRequest来解决这一问题。

    方法如下: 

      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 



  • 相关阅读:
    cad是什么意思?教你快速把cad转换成pdf格式
    为什么街上的商贩更喜欢用微信支付,而不是支付宝,看完长知识了
    音乐剪辑软件怎么用?教你一个快速编辑音频的方法
    电脑如何录制视频?安利两种电脑录屏的方法
    被称为逆天改命的5大中国工程,曾轰动世界,你知道几个?
    如何使用音乐格式转换器?快速编辑音频文件的方法
    PPT结尾只会说“谢谢”?学会这些PPT结尾,观众主动为你鼓掌
    经典PHP面试题(冒泡排序),当场就被打脸,卧槽什么冒泡?为啥还排序?
    千万不要再搞混了,函数empty( var );输出的判断值是false : true
    PHP删除数组中空数组
  • 原文地址:https://www.cnblogs.com/scottckt/p/1831882.html
Copyright © 2011-2022 走看看