【问题标题】:How to get the style of the element in code behind changed by JavaScript如何获取被JavaScript改变的代码中元素的样式
【发布时间】:2013-03-15 02:02:14
【问题描述】:

我有一些最初不可见的 ASP.NET 表行。单击时,我正在运行一个 Javascript 函数,该函数正在更改显示或隐藏它的表格行的样式。

展示它:

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

隐藏它:

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

这行得通。

问题是当且仅当该行可见时,我才需要对该行的内容进行一些过滤。

在样式后面的代码中,保持设计状态,不采用当前状态。

如果元素可见或不可见,获取信息的最佳方法是什么?

【问题讨论】:

  • 如果您在 table 中引用 tr 中的行。您能否发布相关的 HTML 标记。 document.getElementById(id) 指的是什么 DOM 元素?
  • 你能告诉我们你需要检查样式的相关周边代码吗?了解你目前拥有的东西通常会有所帮助。
  • 这个问题可以重复:how-to-check-if-an-element-is-really-visible-with-javascript 吗?不确定这篇文章是否有帮助,但它确实很有趣并且似乎解决了这个话题:javascript-tool-detect-if-a-dom-element-is-truly-visible
  • @FrançoisWahl 基于最后两句话(“在样式后面的代码中保持设计状态,不采用当前状态。如果元素是否可见?”),我认为 OP 正在尝试检查(在服务器端)是否在客户端更改了可见性。尽管我绝对看到您如何按照自己的方式解释问题。有点不清楚。
  • @jadarnel27:这就是为什么我没有点击 close 按钮作为重复但只在 cmets 中询问:)

标签: javascript asp.net visibility code-behind


【解决方案1】:

当您运行该 JavaScript 时,您需要更改服务器控件中某些内容的值(这将使用新值回发到服务器)。如果您还没有任何东西,您可以使用像 HiddenField 控件这样简单的东西。

所以你应该把它添加到你的标记中:

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

然后在您的 JavaScript 函数中执行此操作:

//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.
}

【讨论】:

    【解决方案2】:

    展示它:

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

    隐藏它:

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

    检查:

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

    还是我错过了什么?

    【讨论】:

    • 基于最后两句(“在样式后面的代码中保持设计状态并且不采用当前状态。如果元素获取信息的最佳方法是什么?是否可见?”),我认为 OP 正在尝试(在服务器端)检查客户端的可见性是否发生了变化。
    • 啊,也许我当时错过了什么:-\
    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多