zoukankan      html  css  js  c++  java
  • Jquery Tabs 在asp.net 中的应用

    Jquery Tabs asp.net 中的应用

    首先寫一個web service 方法

    根據不同的汽車類型得到此中類型下的汽車信息

     

    [WebMethod]

    public List<Car> GetCarsByMake(string make)

    {

        var query = from c in Cars

                    where c.Make == make

                    select c;

        return query.ToList();

    }

     

    引入Jquery類庫

     

    <script type="text/javascript" src="script/jquery-1.3.2.min.js"></script> 

    <script type="text/javascript" src="script/ui.core.min.js"></script> 

    <script type="text/javascript" src="script/ui.tabs.min.js"></script> 

     

    編寫html腳本

    <form id="form1" runat="server"> 

    <div> 

      <div id="content">

        <ul>

          <li><a href="#tab0"><span>Ford</span></a></li>

          <li><a href="#tab1"><span>Toyota</span></a></li>

          <li><a href="#tab2"><span>Honda</span></a></li>

          <li><a href="#tab3"><span>Audi</span></a></li>

        </ul>

        <div id="tab0"></div>

        <div id="tab1"></div>

        <div id="tab2"></div>

        <div id="tab3"></div>

      </div>

    </div> 

    </form> 

     

     


    html中調用tabs

     

    $(function() {

      var $tabs = $("#content").tabs();

    });

     

    運行頁面結果如下圖

    此時,點擊每個標籤可以相互切換,但是標籤里沒有內容,Let’s go on….

    以下代碼用來注冊tab的单击事件,并通过web service 从数据库中获得数据显示到前台

     

    var make;

    $(function() {

      var $tabs = $("#content").tabs({

        select: function(e, ui) {

          var thistab = ui.index;

          $("#tab" + thistab).html(getCars(thistab));

        }

      });

    });

     

    function getCars(thistab) {

      switch (thistab) {

        case 0:

          make = "Ford";

          break;

        case 1:

          make = "Toyota";

          break;

        case 2:

          make = "Honda";

          break;

        case 3:

          make = "Audi";

          break;

      }

      $.ajax({

        type: "POST",

        url: "Services/CarService.asmx/GetCarsByMake",

        data: "{make: '" + make + "'}",

        contentType: "application/json; charset=utf-8",

        dataType: "json",

        success: function(response) {

          var cars = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

          for (var i = 0; i < cars.length; i++) {

            $('#tab' + thistab).append('<p><strong>' + cars[i].Make + ' ' +

                                  cars[i].Model + '</strong><br /> Year: ' +

                                  cars[i].Year + '<br />Doors: ' +

                                  cars[i].Doors + '<br />Colour: ' +

                                  cars[i].Colour + '<br />Mileage: ' +

                                  cars[i].Mileage + '<br />Price: £' +

                                  cars[i].Price + '</p>');

          }

        }

      });

    }

     

    再次运行页面,切换不同的标签,根据种类显示不同的内容.

    这时就出现了一个问题. 重复点击相同的标签,会重复向服务器发送请求.

    解决办法如下:

    var make;

    var clicked = new Array();

    $(function() {

      var $tabs = $("#content").tabs({

        select: function(e, ui) {

          var thistab = ui.index;

          $("#tab" + thistab).html(getCars(thistab));

        }

      });

    });

     

    function getCars(thistab) {

      for (var x in clicked) {
        
    if (clicked[x] == thistab)
          
    return;
      }

      switch (thistab) {

        case 0:

          make = "Ford";

          break;

        case 1:

          make = "Toyota";

          break;

        case 2:

          make = "Honda";

          break;

        case 3:

          make = "Audi";

          break;

      }

      $.ajax({

        type: "POST",

        url: "Services/CarService.asmx/GetCarsByMake",

        data: "{make: '" + make + "'}",

        contentType: "application/json; charset=utf-8",

        dataType: "json",

        success: function(response) {

          var cars = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

          for (var i = 0; i < cars.length; i++) {

            $('#tab' + thistab).append('<p><strong>' + cars[i].Make + ' ' +

                                  cars[i].Model + '</strong><br /> Year: ' +

                                  cars[i].Year + '<br />Doors: ' +

                                  cars[i].Doors + '<br />Colour: ' +

                                  cars[i].Colour + '<br />Mileage: ' +

                                  cars[i].Mileage + '<br />Price: £' +

                                  cars[i].Price + '</p>');

          }

          clicked.push(thistab);

        }

      });

    }

     

    至此,Jquery tabsasp.net 中的应用结束。

    此案例下載:

    http://www.mikesdotnetting.com/Samples/LazyLoadTabs.aspx

    原文地址:

    http://www.mikesdotnetting.com/Article.aspx?ArticleID=102

    作者:酷客多小程序

    出处: http://www.cnblogs.com/ywqu

    如果你认为此文章有用,请点击底端的【推荐】让其他人也了解此文章,

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    ArrayList和CopyOnWriteArrayList
    UML类关系
    Vmware下mint os的安装
    Java VisualVM无法检测到本地java程序 的 解决办法
    谜之闭包
    虚拟DOM(Virtual DOM)
    ES6箭头函数与普通函数的区别
    HTML中 select 与datalist的异同
    备战前端面试
    javascript获取数组中的最大值/最小值
  • 原文地址:https://www.cnblogs.com/ywqu/p/1442904.html
Copyright © 2011-2022 走看看