2017-10-16 39 views
1

當我點擊使用lirunat=server時所做的不同選項卡時,我有以下代碼來加載控件。無法從代碼後面的代碼中獲取活動狀態

但我的問題是我需要加載控件基於哪個li選項卡處於活動狀態。如何區分後面的代碼點擊哪個選項卡(li)?

這是我的HTML代碼:

<ul class="tabcontrols l_tinynav1"> 
    <li class="current" id="li_ActivationBySOID" runat="server"> 
     <a id="a1" onserverclick="lnk_ActSOID_Click" runat="server" title="Capacity and Flex :Order Number based">Order Number</a> 
    </li> 
    <li class="" id="li_Activation" runat="server"><a id="AnchorButton" onserverclick="lnk_Act_Click" runat="server" title="Capacity and Flex:Certificated Id based">Full Redemption</a> 
    </li> 
    <li class="" id="li_BActivation" runat="server"> 
     <a id="a_BACt" onserverclick="lnk_BA_Click" runat="server" title="Flex: Certificate Id based">Partial Redemption</a> 
    </li> 
</ul> 

這是我的代碼背後:

loadcontrols(ddlPType.SelectedIndex); // I need to load if li_Activation is active 

if (Request.QueryString["PType"] != null) 
{ 
    int ptype = -1; 

    if (Int32.TryParse(Request.QueryString["PType"].ToString(), out ptype)) 
    { 
     loadcontrols(ptype); 
     ddlPType.SelectedIndex = ptype; 
    } 
} 

loadOrderNumberControls(ddlPType.SelectedIndex); // I need to load if li_ActivationBySOID is active 

if (Request.QueryString["PType"] != null) 
{ 
    int ptype = -1; 

    if (Int32.TryParse(Request.QueryString["PType"].ToString(), out ptype)) 
    { 
     loadOrderNumberControls(ptype); 
     ddlPType.SelectedIndex = ptype; 
    } 
} 

可以在任何一個請建議在這個任何想法?

更新: 我試着用HiddenField這樣的,但我的代碼漸漸空虛string背後:

<script> 
    $(document).ready(function() { 
    $("#myList li").click(function() { 
     $("#hdnTabField").val($(this).attr('id')); 
    }); 
}) 
</script> 


<ul class="tabcontrols l_tinynav1" id="myList"> 
    <asp:HiddenField ID="hdnTabField" runat="server" /> 
    <li class="current" id="li_ActivationBySOID" runat="server"> 
     <a id="a1" 
      onserverclick="lnk_ActSOID_Click" 
      runat="server" 
      title="Capacity and Flex :Order Number based">Order Number 
     </a> 
    </li> 
    <li class="" id="li_Activation" runat="server"> 
     <a id="AnchorButton" 
      onserverclick="lnk_Act_Click" 
      runat="server" 
      title="Capacity and Flex:Certificated Id based">Full Redemption 
     </a> 
    </li> 
    <li class="" id="li_BActivation" runat="server"> 
     <a id="a_BACt" 
      onserverclick="lnk_BA_Click" 
      runat="server" 
      title="Flex: Certificate Id based">Partial Redemption 
     </a> 
    </li> 
</ul> 

而且在後面的代碼:

var selectedTab = hdnTabField.Value; 

選中的標籤越來越空值。

+0

我試過你的代碼,並在代碼隱藏的隱藏字段中得到了正確的值。 – krlzlx

+0

我有通過母版頁繼承aspx頁..我把標籤內的腳本,我正在訪問頁面加載方法內的隱藏字段值..我得到空值..這是正確的方式 –

+0

@krlzlx你在哪裏放這段代碼 –

回答

0

嘗試使用name屬性而不是id屬性爲您的li元素。使用id財產,你的控制將有id這樣的:

ContentPlaceHolderName_liNameId

使用name財產

<li class="" name="li_Activation" runat="server">[...]</li> 

然後改變你的JavaScript是這樣的:

$("#myList li").click(function() { 
    $('input[id$=hdnTabField]').val($(this).attr('name')); 
}); 

然後,您應該爲隱藏字段獲取正確的值。