2013-03-12 69 views
0

我有一個tabcontainer在updatepanel中,我想在tabcontainer下面顯示gridview。在標籤容器內部,當我按下每個標籤時可以更改,但是當點擊標籤時,我無法在gridview中進行更改。如何使用jquery或javascript獲得tabcontainer ID?

目前我可以看到,如下所示的JavaScript正在工作,因爲我確認使用警報。

<script type="text/javascript" src="Scripts/jquery-1.9.1.min.js"></script> 
<script type="text/javascript" src="Scripts/jquery-ui-1.8.13.custom.min.js"> 
</script> 
<script type="text/javascript"> 
function tabClick() { 

    var selected_tab = $("#TabContainer1").tabs(); 


    alert(selected_tab); 
    return; 
} 

我有一個TabContainer的如下

<asp:UpdatePanel ID="EmployeeInfoUpdatePanel" runat="server"> 
    <ContentTemplate> 
    <div style="padding-left:205px"> 
     <asp:TabContainer ID="TabContainer1" runat="server" Width="955px" 
      Height="350px" CssClass="fancy fancy-green" ActiveTabIndex="0" OnClientActiveTabChanged="tabClick"> 
      <asp:TabPanel ID="companyTab" HeaderText="Company" runat="server" ForeColor="Black"> 
       <ContentTemplate> 
         codes.... 

我已經搜索並發現了一些規定,如tab.get_activetab但它不工作。如果我鍵入selected_tab。和視覺工作室想出了我可以選擇的選項,但沒有選項get_activetab或_activeTabIndex

我想獲得一個活動標籤ID並將參數傳遞給C#代碼。

有沒有可能?

有人可以幫忙嗎?

感謝

回答

1

首先,你可以得到任何元素從一個jQuery對象或本地JavaScript對象的ID如下

// jquery get id of html element 
    $(myJquerySelector)[0].id 
    $(myJquerySelector).attr('id'); 

    // native js get id of html element 
    document.querySelector(myNativeSelector).id; 
    document.getElementById(theID).id; 

但你的問題不止於此。爲了讓活動標籤的ID,你只是需要獲取標籤

$('.ui-tabs-active')[0].id // will give you the id of the active tab 

然後傳遞到您的服務器,你需要AJAX。所以像這樣:

$.post('/my/server/path', { id : $('.ui-tabs-active')[0].id }); 

這將張貼到您的服務器和c#活動選項卡的ID。

+0

感謝您的回答,但對不起我不明白..so myJquerySelector意味着使用選擇器來獲得我的tabcontainer?它是否像$(「TabContainer1」)[0] .id?所以請使用您發佈的第一個代碼,第二個代碼獲取活動選項卡的ID,然後使用第三個代碼將其傳遞到服務器端?我怎麼能從服務器端使用該ID?謝謝 – warang 2013-03-13 20:34:58

+0

「TabContainer1」不是有效的jquery選擇器,但是。我也不太瞭解你的服務器,以幫助你。 $ .post將像普通帖子一樣工作。 – Fresheyeball 2013-03-13 21:20:26

1

對於直javascript函數我用下面這個來獲得活動標籤:

var tab = document.getElementById('tabContainer'); 
var currentTabIndex = tab.control.get_activeTabIndex(); 
var currentTabId = tab.control._tabs[currentTabIndex]._tab.id; 

然後,使用一些AJAX來獲取ID回服務器。

+0

我試過,但它不適合我..第一行工作正常,我認爲,因爲它顯示空值,如果我使用標籤警報。但從第二行不起作用。即使我將警報放在我的代碼上,它也不會在我的警報中顯示任何內容。 – warang 2013-03-13 20:44:12

+0

對不起..意識到我已經在onTabChanged事件中測試了這個。我把它移到了onload上。試試這個:var tab = document.getElementById('tabContainer'); var currentTabIndex = tab.control._activeTabIndex; var currentTabId = tab.control._tabs [currentTabIndex] ._ tab.id; – jiiri 2013-03-13 21:23:58