亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

ASP.NET AJAX Advance Tips & Tricks (3) JavaScript與Tab的交互

2019-11-11 03:32:31
字體:
來源:轉載
供稿:網友

前言

asp.net Ajax Control Toolkit 中的Tab控件非常簡單易用,對服務端和客戶端的支持都非常不錯。本篇通過幾個FAQ給大家介紹Tab和javaScript的常用交互,以及應該注意到的問題。

1. TabCantainer的Javascript接口

目前的Tab控件很多,而Altas的Tab控件有點在于JavaScript接口非常豐富,而且非常便于理解和使用,一般常用的有以下幾組:

復制代碼    get_headerText //獲取標題文字    set_headerText //設置標題文字        get_headerTab //獲取標題Tab    set_headerTab //設置標題Tab    get_enabled //啟用TabPanel    set_enabled //禁用TabPanel      get_owner //獲取TabPanel父容器    set_owner //設置TabPanel父容器     get_scrollBars //獲取滾動條狀態    set_scrollBars //設置滾動條狀態     get_tabIndex //獲取TabPanel的序號    _get_active//獲取當前活動的TabPanel    _set_active//設置當前活動的TabPanel復制代碼

 

而所有的接口可以在源代碼的Tabs.js文件中找到:

2. 常用例子

A. 獲取TabContainer當前活動的TabPanel

        function GetActiveTab(tabControl) {            var ctrl = $find(tabControl);            var activeid = ctrl.get_activeTab().get_tabIndex();            alert(activeid);        }

 

B. 設置TabContainer當前活動的TabPanel

        function SetActiveTab(index) {            var ctrl = $find("TabContainer1");            var tabpanel = ctrl.get_tabs()[index];            ctrl.set_activeTab(tabpanel);        }

 

3. 修改Tab控件,使其支持鼠標移動激活

盡管Tab控件比較酷,也很便于使用,但它默認的事件是點擊標簽來激活一個TabPanel,而很多JavaScript Tab和一些第三方控件的Tab都是靠onmouSEOver來激活一個TabPanel。如果想要使 Tab控件通過onmouseover激活TabPanel,我們可以通過修改源代碼來實現:

復制代碼//in the "Tab.js" change the “_header_onmouseover” (near the 522nd line) as following:    _header_onmouseover: function(e) {        Sys.UI.DomElement.addCSSClass(this._tab, "ajax__tab_hover");        this.get_owner().set_activeTab(this);//添加這一行(add this line to the original code)    },復制代碼

 

4. ClientID問題

與一般的ASP.NET服務端容器一樣,在TabPanel里的控件也會在Render的時候重命名,為其生成一個ClientID,如果需要在JavaScript中對這些控件進行操作,我們必須要獲得它們的ClientID,如下的代碼是一般的方法:

 

<%@ Page Language="C#" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPRefix="cc1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    public string tabContentTableClientID    {        get { return tabContentTable.ClientID; }    }    </script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <script type="text/javascript">        function getTabsOnSuccess() {            document.getElementById('<%=tabContentTableClientID%>').innerHTML = "Hello world";        }            </script></head><body>    <form id="form1" runat="server">    <div>        <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">        </cc1:ToolkitScriptManager>        <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" Height="381px"            Width="536px">            <cc1:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">                <HeaderTemplate>                    TabPanel1                </HeaderTemplate>                <ContentTemplate>                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>                    <asp:Panel ID="tabContentTable" runat="server">                    </asp:Panel>                </ContentTemplate>            </cc1:TabPanel>            <cc1:TabPanel runat="server" HeaderText="TabPanel2" ID="TabPanel2">                <ContentTemplate>                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>                </ContentTemplate>            </cc1:TabPanel>        </cc1:TabContainer>        <input id="Button1" type="button" value="button" onclick="getTabsOnSuccess();" />    </div>    </form></body></html>

 

然而,如果你實驗上面的代碼,則會發現它是不work的,ClientID并沒有正確的獲得,反而產生了稀奇古怪的錯誤。

其原因是ASP.NET編譯的順序問題,由于AJAX控件是采用Sys.application.add_init()添加到頁面中的,而我們在上面例子中對ClientID的綁定在這個過程之前,所以產生了這種順序錯誤。

解決方案很簡單,就是把寫在<head></head>中的JavaScript代碼寫到body的末尾,這樣,可以確保能夠在JavaScript代碼中的ClientID綁定時,Tab已經成功添加到頁面Control Tree,從而解決問題:

<%@ Page Language="C#" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    public string tabContentTableClientID    {        get { return tabContentTable.ClientID; }    }    </script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>        <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">        </cc1:ToolkitScriptManager>        <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" Height="381px"            Width="536px">            <cc1:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">                <HeaderTemplate>                    TabPanel1                </HeaderTemplate>                <ContentTemplate>                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>                    <asp:Panel ID="tabContentTable" runat="server">                    </asp:Panel>                </ContentTemplate>            </cc1:TabPanel>            <cc1:TabPanel runat="server" HeaderText="TabPanel2" ID="TabPanel2">                <ContentTemplate>                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>                </ContentTemplate>            </cc1:TabPanel>        </cc1:TabContainer>        <input id="Button1" type="button" value="button" onclick="getTabsOnSuccess();" />    </div>    </form>    <script type="text/javascript">        function getTabsOnSuccess() {            document.getElementById('<%=tabContentTableClientID%>').innerHTML = "Hello world";        }            </script></body></html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成年人视频网站欧美| 一道本无吗dⅴd在线播放一区| 91av在线看| 久久人人爽人人| 国产欧美日韩精品丝袜高跟鞋| 狠狠躁天天躁日日躁欧美| 精品国产31久久久久久| 91精品国产高清久久久久久91| 97视频在线观看免费高清完整版在线观看| 日韩成人高清在线| 全亚洲最色的网站在线观看| 91精品国产色综合久久不卡98| 亚洲欧美中文日韩在线v日本| 色偷偷9999www| 亚洲精选中文字幕| 日韩av观看网址| 亚洲国产小视频在线观看| 久久偷看各类女兵18女厕嘘嘘| 成人黄色影片在线| 日韩电影大片中文字幕| 亚洲缚视频在线观看| 日韩美女福利视频| 国产一区二区动漫| 亚洲wwwav| 91免费视频国产| 5566成人精品视频免费| 国产精品欧美在线| 欧美日韩精品国产| 亚洲第一视频在线观看| 亚洲色图校园春色| 日韩亚洲精品视频| 5566日本婷婷色中文字幕97| 91精品国产综合久久男男| 欧美性生交xxxxx久久久| 国产国语刺激对白av不卡| 色老头一区二区三区在线观看| 亚洲国产成人精品久久久国产成人一区| 亚洲国产小视频在线观看| 欧美午夜激情视频| 26uuu久久噜噜噜噜| 亚洲色图日韩av| 国产精品久久精品| 欧美日韩国产一区二区三区| 精品国产老师黑色丝袜高跟鞋| 欧美大片在线看| 精品中文视频在线| 欧美午夜片在线免费观看| 亚洲女在线观看| 欧美性猛交xxxx免费看久久久| 亚洲精品电影久久久| 国产亚洲人成网站在线观看| 日韩精品在线观看一区二区| 久久久久久网址| 97精品欧美一区二区三区| 精品久久久久久久久久久久| 欧美日韩免费在线| 欧美精品在线观看| 国产精品激情av在线播放| 日韩av一区在线观看| 日韩欧美大尺度| 全色精品综合影院| 亚洲国产精品成人va在线观看| 草民午夜欧美限制a级福利片| 精品国产1区2区| 色系列之999| 岛国精品视频在线播放| 久久精品视频在线| 秋霞成人午夜鲁丝一区二区三区| 欧美极品第一页| 色噜噜国产精品视频一区二区| 久久免费国产精品1| 中文字幕视频在线免费欧美日韩综合在线看| 久久亚洲精品国产亚洲老地址| 国产精品吴梦梦| 国产精品免费久久久久影院| 亚洲人成电影网站色…| 日韩大陆欧美高清视频区| 国产精品日韩欧美大师| 中文字幕久热精品在线视频| 亚洲日本欧美日韩高观看| 国产精品久久久久久亚洲影视| 亚洲国产另类 国产精品国产免费| 欧美日韩国产丝袜另类| 国产色视频一区| 亚洲欧美国产一区二区三区| 亚洲欧美综合区自拍另类| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人免费看吃奶视频网站| 亚洲欧美国产精品专区久久| 欧美亚洲成人网| 欧美日韩高清在线观看| 国产精品视频久| 伊人伊人伊人久久| 久久久精品视频在线观看| 欧美日本啪啪无遮挡网站| 久久久噜噜噜久久中文字免| 日韩精品在线观看视频| 91亚洲精品视频| 日韩av黄色在线观看| 亚洲国产精品热久久| 亚洲男人天堂网| 国产91在线视频| 久久视频这里只有精品| 国产成人久久精品| 亚洲人成电影在线观看天堂色| 欧美超级免费视 在线| 久久久免费观看视频| 日韩久久免费电影| 国产综合福利在线| 中文字幕日韩专区| 色噜噜狠狠狠综合曰曰曰88av| 久久精品电影一区二区| 精品福利在线视频| 日本精品视频在线| 欧美一区二区.| 精品露脸国产偷人在视频| 96精品久久久久中文字幕| 啊v视频在线一区二区三区| 亚洲精品福利资源站| 久久成年人视频| 亚洲va欧美va国产综合久久| 日韩精品999| 亚洲精品视频在线观看视频| 亚洲一区美女视频在线观看免费| 黑人巨大精品欧美一区二区免费| 国产成人精品av在线| 日本中文字幕不卡免费| www.久久久久| 欧美精品久久一区二区| 色多多国产成人永久免费网站| 日本精品一区二区三区在线播放视频| 69**夜色精品国产69乱| 亚洲国产精品嫩草影院久久| 欧美福利视频在线观看| 国产精品成人国产乱一区| 成人高清视频观看www| 国产精品日韩av| 国产日韩精品入口| 亚洲高清一二三区| 亚洲激情视频在线播放| 欧美黑人xxxⅹ高潮交| 精品久久香蕉国产线看观看亚洲| 亚洲丝袜av一区| 美女999久久久精品视频| 激情懂色av一区av二区av| 久久九九有精品国产23| 亚洲国产高清福利视频| 国产91九色视频| 91久久夜色精品国产网站| 亚洲成人久久久久| 亚洲电影中文字幕| 国产亚洲一区二区在线| 狠狠色狠狠色综合日日小说| 欧美精品中文字幕一区| 久久国产加勒比精品无码| 欧美www视频在线观看| 亚洲xxxxx| 国产不卡av在线免费观看| 久久久久99精品久久久久| 欧美老妇交乱视频| 国产成人高潮免费观看精品| 欧美日韩国产123| 国产精品国语对白| 96精品视频在线|