多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > JavaScript提高:005:ASP.NET使用easyUI TABS標簽顯示問題

JavaScript提高:005:ASP.NET使用easyUI TABS標簽顯示問題

來源:程序員人生   發布時間:2014-08-15 18:26:14 閱讀次數:6814次
前面使用easy ui來實現了一個tabs標簽(http://blog.csdn.net/yysyangyangyangshan/article/details/38307477),不過在ASP.NET中使用時發現了一個問題。
大家都知道,asp.net頁面的控件,當控件的事件不是使用 "return js函數();"時,或者控件注冊的是后臺的事件,那么整個頁面會重新加載的。此時這個easy ui實現的tabs標簽,總是回到了第一個tab頁。雖然可以借助ajax和jQuery的方法,來實現前后臺交互
($.ajax方式前后臺交互:http://blog.csdn.net/yysyangyangyangshan/article/details/22438077
$.post方式前后臺交互:http://blog.csdn.net/yysyangyangyangshan/article/details/22755007)。
可以把后臺的數據轉換為json字符串形式,傳遞給前臺,前臺經過拆分還原出內容,賦值給對應的控件。這也不失為一種方式。
不過,javascript畢竟只是一個輔助的語言,在ASP.NET中如果把所有的前后臺交互都用js這種方式實現,那是不可能的,那就成了舍本逐末,畢竟是用ASP.NET的事件機制,還是很方便的。
針對這個tabs問題,該如何解決呢?
思路很簡單,無非就是記住上次選中的tab頁,然后當頁面刷新時讀取出上次的tab,在初始化頁面的時候,強制顯示指定的tab頁。
這里有幾個步驟比較重要:
1、記錄選中的tab;
2、讀取指定的tab;
3、顯示指定的tab。
直接看所有的代碼:
前臺代碼如下:
  1. [html] view plaincopyprint?  
  2. 01.<html xmlns="http://www.w3.org/1999/xhtml">    
  3. 02.<head runat="server">    
  4. 03.    <title></title>    
  5. 04.    <link href="Scripts/EasyUI/themes/icon.css" rel="stylesheet" type="text/css" />    
  6. 05.    <link href="Scripts/EasyUI/themes/default/easyui.css" rel="stylesheet" type="text/css" />    
  7. 06.    <script src="Scripts/EasyUI/jquery-1.8.0.min.js" type="text/javascript"></script>    
  8. 07.    <script src="Scripts/EasyUI/jquery.easyui.min.js" type="text/javascript"></script>    
  9. 08.    <script src="Scripts/EasyUI/easyui-lang-zh_CN.js" type="text/javascript"></script>    
  10. 09.    <script src="Scripts/Common.js" type="text/javascript"></script>    
  11. 10.    <script src="Scripts/Ajax.js" type="text/javascript"></script>    
  12. 11.</head>    
  13. 12.<body>    
  14. 13.<form id="form1" runat="server" >    
  15. 14.  <div id="tabTop">    
  16. 15.    <div title="標簽一" runat="server">    
  17. 16.      <table>    
  18. 17.       <tr>    
  19. 18.        <td>    
  20. 19.         <asp:Button ID="btn1" runat="server" Text="點擊1" OnClick="Tab1_Button_Click"/>    
  21. 20.        </td>    
  22. 21.       </tr>    
  23. 22.      </table>    
  24. 23.    </div>    
  25. 24.    <div title="標簽二" runat="server">    
  26. 25.      <table>    
  27. 26.       <tr>    
  28. 27.        <td>    
  29. 28.         <asp:Button ID="btn2" runat="server" Text="點擊2"  OnClick="Tab2_Button_Click"/>    
  30. 29.        </td>    
  31. 30.       </tr>    
  32. 31.      </table>    
  33. 32.    </div>    
  34. 33.  </div>    
  35. 34.  </form>    
  36. 35.</body>    
  37. 36.    
  38. 37.    
  39. 38. <script type="text/javascript">    
  40. 39.    
  41. 40.    
  42. 41.     $('#tabTop').tabs({    
  43. 42.         width: $("#tabTop").parent().width(),    
  44. 43.         height: "auto",    
  45. 44.         onSelect: function (title) {    
  46. 45.             //這是默認的選中事件,但是當執行了pageload這個也會執行    
  47. 46.         }    
  48. 47.     });    
  49. 48.     //初始化—始終顯示后臺保存的標簽    
  50. 49.     $(document).ready(function () {    
  51. 50.         var tabTitle = parseInt("<%=GetSelectedTab()%>");    
  52. 51.         if (tabTitle != null && tabTitle >=0) {    
  53. 52.             $("#tabTop").tabs("select", tabTitle);    
  54. 53.         }    
  55. 54.    
  56. 55.    
  57. 56.         $('#tabTop').bind('click', function () {    
  58. 57.             buttonTabHeadClick();    
  59. 58.         });    
  60. 59.     });    
  61. 60.    
  62. 61.    
  63. 62.     //標簽頁點擊事件    
  64. 63.     function buttonTabHeadClick() {    
  65. 64.    
  66. 65.    
  67. 66.         var title = parseInt($('.tabs-selected').index());    
  68. 67.         var oldTitle =parseInt("<%=GetSelectedTab()%>");    
  69. 68.         if ( oldTitle>=0 && title == oldTitle) {    
  70. 69.             return false;    
  71. 70.         }    
  72. 71.         var selectObj = new Object();    
  73. 72.         selectObj.SelectTabTitle = title;    
  74. 73.         selectObj.OperateType = "TabTitle";    
  75. 74.    
  76. 75.    
  77. 76.         var htmlObjects = $.ajax({    
  78. 77.             type: "POST",    
  79. 78.             data: selectObj,    
  80. 79.             async: true,    
  81. 80.             success: function (result) {    
  82. 81.             },    
  83. 82.             error: function (result) {    
  84. 83.             }    
  85. 84.         });    
  86. 85.         return false;    
  87. 86.     }    
  88. 87.  </script>    
  89. 88.</html>   

$(document).ready(function ():這里是初始化頁面時執行的方法,在這里讀取之前保存的tab頁的索引,然后讓tabs顯示保存的那個索引的tab;同時還綁定了一個tab標簽的click事件;
 function buttonTabHeadClick():這個函數,就是當tab標簽被選中時記錄當前標簽的索引,此處用后臺的一個靜態變量來保存的;
 "<%=GetSelectedTab()%>":完成前臺調用后臺的方法。
 兩個按鈕 點擊1和點擊2 是測試用的,如果不做任何處理,每當按鈕點擊時,tabs總會顯示第一個了。
 
 后臺代碼:
 

  1. 01.public partial class _Default : System.Web.UI.Page    
  2. 02.   {    
  3. 03.       protected static string SelectTabTitle = "0";    
  4. 04.    
  5. 05.    
  6. 06.       protected void Page_Load(object sender, EventArgs e)    
  7. 07.       {    
  8. 08.           if (!IsPostBack)    
  9. 09.           {    
  10. 10.    
  11. 11.    
  12. 12.           }    
  13. 13.    
  14. 14.    
  15. 15.           switch (Request["OperateType"])    
  16. 16.           {    
  17. 17.               case "TabTitle":    
  18. 18.                   SetSelectedTab();    
  19. 19.                   break;    
  20. 20.    
  21. 21.    
  22. 22.               default:    
  23. 23.    
  24. 24.    
  25. 25.                   break;    
  26. 26.           }    
  27. 27.       }    
  28. 28.       /// <summary>     
  29. 29.       /// 保存選中的tab     
  30. 30.       /// </summary>     
  31. 31.       private void SetSelectedTab()    
  32. 32.       {    
  33. 33.           SelectTabTitle = Request["SelectTabTitle"];    
  34. 34.       }    
  35. 35.       /// <summary>     
  36. 36.       /// 獲取選中的tab     
  37. 37.       /// </summary>     
  38. 38.       /// <returns></returns>     
  39. 39.       protected string GetSelectedTab()    
  40. 40.       {    
  41. 41.           return SelectTabTitle;    
  42. 42.       }    
  43. 43.    
  44. 44.    
  45. 45.       protected void Tab1_Button_Click(object sender, EventArgs e)    
  46. 46.       {    
  47. 47.    
  48. 48.    
  49. 49.       }    
  50. 50.    
  51. 51.    
  52. 52.       protected void Tab2_Button_Click(object sender, EventArgs e)    
  53. 53.       {    
  54. 54.    
  55. 55.    
  56. 56.       }    
  57. 57.   }   

 即使在標簽2下點擊按鈕,頁面刷新完后,依然顯示標簽2。
本文來自CSDN程序員人生

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 伊人久久中文字幕久久cm | 在线国产区 | 国产成人精品一区二区三区 | 国产视频一区在线观看 | 巨大黑人极品videos精品 | 亚洲第一影院 | 日本免费区| 久久综合久久精品 | 国产一区二区三区在线 | 日本不卡一区二区三区视频 | 亚洲欧洲综合网 | xxxx欧美| 曰本老妇bbbbbxxxxx | 宅男午夜视频在线观看 | 欧美视频一区二区在线观看 | 国产福利视频一区二区三区四区 | 色费女人18毛片a级视频在线 | 中文字幕第一 | 一本大道高清香蕉中文大在线 | 色亚洲成人 | 一区二区三区免费视频网站 | www视频在线 | 中文字幕一区二区三区 精品 | 纯欧美一级毛片_免费 | 亚洲性hd| 手机看片日韩欧美 | 99视频精品全部在线播放 | 国产成人精品一区二区不卡 | 在线观看亚洲视频 | 欧美爱爱网站 | 国产精品久久久久免费 | 国产福利网站 | 日本一区二区成人教育 | 欧美成免费 | 免费一级大毛片a一观看不卡 | 高清无遮挡在线观看 | 亚洲视频在线观看视频 | 99久久精品国产综合一区 | 日本不卡一二三 | 亚洲欧洲无码一区二区三区 | 黑人性xxxⅹxxbbbbb |