2013-03-25 79 views
0

我有一些ASP.NET表格行最初是不可見的。在點擊時,我正在運行一個Javascript函數,它正在改變顯示它的表格的樣式或隱藏它。如何獲取代碼背後的代碼元素的樣式由JavaScript更改

表現出來:

document.getElementById(id).style.display = ""; 

來隱藏它:

document.getElementById(id).style.display = "none"; 

和工作原理。

問題是,我需要做一些過濾與該行的內容當且僅當該行是可見的。

在樣式背後的代碼保持狀態爲設計,並不需要當前狀態。

如果元素可見或不可見,將獲得信息的最佳方法是什麼?

+0

如果您正在引用行,如'table'中的'tr'所示。你可以請發佈相關的HTML標記。 document.getElementById(id)'引用什麼DOM元素? – Nope 2013-03-25 14:31:04

+0

您可以向我們展示您需要檢查樣式的相關周邊代碼嗎?知道你目前得到的東西通常有幫助。 – 2013-03-25 14:36:59

+0

這個問題可以重複:[**如何檢查,如果元素是真正可見的與JavaScript **](http://stackoverflow.com/questions/704758/how - 檢查,如果一個元素是真正可見的與JavaScript)?不知道這篇文章是否有幫助,但它肯定是有趣的,似乎解決了這個問題:[** javascript-tool-detect-if-a-dom-element-is-truly-visible **](http:// useallfive。 com/javascript-tool-detect-if-a-dom-element-is-really-visible /) – Nope 2013-03-25 15:16:59

回答

0

當您運行該JavaScript時,您需要更改服務器控件中的某個值的值(這將使用新值回發到服務器)。如果你還沒有到位,你可以使用像HiddenField控件一樣簡單的東西。在JavaScript函數

<asp:HiddenField ID="isRowShowing" Value="True" runat="server" /> 

然後做到這一點:

所以,你會添加到您的標記

//To show 
document.getElementById(id).style.display = ""; 
document.getElementById('<%= isRowShowing.ClientID %>').value = "True"; 

//To Hide 
document.getElementById(id).style.display = "none"; 
document.getElementById('<%= isRowShowing.ClientID %>').value = "False"; 

然後你就可以在你的代碼檢查它的背後:

if(isRowShowing.Value == "True") 
{ 
    // Do stuff 
} 
else 
{ 
    // Do other stuff. Or don't do stuff. Whatevs. 
} 
0

展示它:

document.getElementById(id).style.display="inline"; 

來隱藏它:

document.getElementById(id).style.display="none"; 

要檢查它:

if(document.getElementById(id).style.display=="inline") { 
    //Do your stuff 
    } 

還是我失去了一些東西?

+1

基於最後兩個句子(「*在代碼後面的樣式保持狀態爲設計,並不需要當前狀態,如果元素可見或不可見,什麼是獲取信息的最佳方法?「),我認爲OP正在嘗試檢查(在服務器端)客戶端的可見性是否已更改。 – jadarnel27 2013-03-25 15:22:35

+0

啊,也許我錯過了一些東西然後: - \ – ElPedro 2013-03-25 15:36:33

+0

在你的防守中,我覺得這個問題有點不清楚。 – jadarnel27 2013-03-25 15:39:47