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

來源:互聯網
上載者:User

JavaScript提高:005:ASP.NET使用easyUI TABS標籤顯示問題
前面使用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。


關於用到的easyui的js以及樣式檔案,前文已經說過了(http://blog.csdn.net/yysyangyangyangshan/article/details/38306591)。


直接看所有的代碼:
前台代碼如下:

                <script src="Scripts/EasyUI/jquery-1.8.0.min.js" type="text/javascript"></script>    <script src="Scripts/EasyUI/jquery.easyui.min.js" type="text/javascript"></script>    <script src="Scripts/EasyUI/easyui-lang-zh_CN.js" type="text/javascript"></script>    <script src="Scripts/Common.js" type="text/javascript"></script>    <script src="Scripts/Ajax.js" type="text/javascript"></script> <script type="text/javascript">     $('#tabTop').tabs({         width: $("#tabTop").parent().width(),         height: "auto",         onSelect: function (title) {             //這是預設的選中事件,但是當執行了pageload這個也會執行         }     });     //初始化—始終顯示後台儲存的標籤     $(document).ready(function () {         var tabTitle = parseInt("<%=GetSelectedTab()%>");         if (tabTitle != null && tabTitle >=0) {             $("#tabTop").tabs("select", tabTitle);         }         $('#tabTop').bind('click', function () {             buttonTabHeadClick();         });     });     //標籤頁點擊事件     function buttonTabHeadClick() {         var title = parseInt($('.tabs-selected').index());         var oldTitle =parseInt("<%=GetSelectedTab()%>");         if ( oldTitle>=0 && title == oldTitle) {             return false;         }         var selectObj = new Object();         selectObj.SelectTabTitle = title;         selectObj.OperateType = "TabTitle";         var htmlObjects = $.ajax({             type: "POST",             data: selectObj,             async: true,             success: function (result) {             },             error: function (result) {             }         });         return false;     }  </script>

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

後台代碼:
 public partial class _Default : System.Web.UI.Page    {        protected static string SelectTabTitle = "0";        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {            }            switch (Request["OperateType"])            {                case "TabTitle":                    SetSelectedTab();                    break;                default:                    break;            }        }        ///         /// 儲存選中的tab        ///         private void SetSelectedTab()        {            SelectTabTitle = Request["SelectTabTitle"];        }        ///         /// 擷取選中的tab        ///         ///         protected string GetSelectedTab()        {            return SelectTabTitle;        }        protected void Tab1_Button_Click(object sender, EventArgs e)        {        }        protected void Tab2_Button_Click(object sender, EventArgs e)        {        }    }
效果如下:
下載:http://download.csdn.net/detail/yysyangyangyangshan/7758201

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.