程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 4種頁面無刷新更新數據的技術

4種頁面無刷新更新數據的技術

編輯:.NET實例教程

1.IFrame 實現無刷新
   <script language="Javascript">
       function Search()
       {
            var city=document.getElementById("TextBox1").value;
            if(city !="")
            {
               document.getElementById("iframe1").src="myframe.ASPx?city=" +city;
            }
       }
    </script>

 <iframe src="myframe.ASPx" id="iframe1" width="100%" height="100%"  frameborder="0" scrolling="no"/>

    protected void Page_Load(object sender, EventArgs e)
    {
        //獲取傳遞過來的參數
        string city = Request.QueryString["city"];
        //判斷城市名
        switch (city)
        {
            case "北京":
                //填充相關的區域
                DropDownList1.Items.Clear();
                DropDownList1.Items.Add("朝陽");
                DropDownList1.Items.Add("海澱");
                DropDownList1.Items.Add("東城");
             

   DropDownList1.Items.Add("西城");
                break;

 


2. JS方法實現無刷新 Page.ClientScript.RegisterClIEntScriptBlock

        //創建字符串連接對象
        StringBuilder myscript = new StringBuilder();
        //使用字符串組織一個JavaScript腳本方法
        myscript.Append("function seekCity()    {\n");
        myscript.Append("var city=document.getElementById(''TextBox1'').value; \n");
        myscript.Append("switch(city)       {\n");
        myscript.Append("case ''北京'': \n");
        myscript.Append("FillData(''" + GetCityStr("北京") +"''); \n");
        myscript.Append("break; \n");
        myscript.Append("case ''上海'': \n");
        myscript.Append("FillData(''" + GetCityStr("上海") + "''); \n");
        myscript.Append("break; \n");
        myscript.Append("case ''濟南'': \n");
        myscript.Append("FillData(''" + GetCityStr("濟南") + "''); \n");
        myscript.Append("break; }\n");
        myscript.Append(" }\n");
        //使用注冊腳本方法在頁面的客戶端,注冊這個字符串編寫的腳本方法。
        Page.ClientScript.RegisterClIEntScriptBlock(typeof(string), "seekCity", myscript.ToString(),true);

3. 使用CallBack技術
    <script type="text/Javascript">
  function FillData()
   &nbsp;    {
           var city=document.getElementById("TextBox1").value;
     
            <% =this.ClIEntScript.GetCallbackEventReference(this,"city","FillDll",null)  %>;
  //向後台傳送數據 數據是:city    數據返回後,前台處理數據的方法是:FillDll
        }

        function FillDll(strcity)
        {

   </script>
 public partial class _Default : System.Web.UI.Page,ICallbackEventHandler //類繼承接口 並實現接口方法
 {
  public string GetCallbackResult()
      {
          //返回處理後的數據
          return _data;
      }

&nbsp;     public void RaiseCallbackEvent(string eventArgument)
       {
          //判斷傳遞過來的參數
           switch (eventArgument)
           {
              case "北京":
                   _data = "朝陽,海澱,東城,西城";
                   break;
            case "上海":
                   _data = "浦東,靜安,徐匯,虹口";
                   break;
              case "濟南":
                   _data = "歷城,歷下,市中,

天橋";
                   break;
          }
       }
 }


4. 使用AJax技術實現無刷新

  <script type="text/Javascript">
    var XMLhttp;
    function getData()
    {
      //獲取用戶填寫的名稱
      var city=document.getElementById("txt").value;
      //創建異步調用對象
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      //將對象狀態與事件相關聯
      XMLhttp.onreadystatechange=statechange;
      //加載要鏈接的頁面
      XMLhttp.Open("POST","datapage.ASPx?city=" +city,true);
      //發送請求
      XMLhttp.Send();
    }
    function statechange()
    {
      //判斷異步調用是否已經完成
      if(XMLhttp.readystate==4)
      {
        //判斷完成的提示代碼是否是OK狀態
        if(XMLhttp.status==200)
        {
           //將返回數據作為參數,傳遞給填充方法
           FillData(XMLhttp.responseText);
        }
      }
    }
  datapage.ASPx頁面

    protected void Page_Load(object sender, EventArgs e)
    {
        //獲取傳遞過來的參數
        string city =Request.QueryString["city"];
        Response.Clear();
        //判斷城市名
        switch (city)
        {
            case "beijing":
                //填充相關的區域
                Response.Write("朝陽,海澱,東城,西城");
                break;
            case "shanghai":
                Response.Write("浦東,靜安,虹口,徐匯");
                break;
            case "jinan":
                Response.Write("歷下,歷城,市中,天橋");
                break;
        }
    }

 

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