Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在JavaScript中显示父按钮';隐藏的_C#_Javascript_.net - Fatal编程技术网

C# 如何在JavaScript中显示父按钮';隐藏的

C# 如何在JavaScript中显示父按钮';隐藏的,c#,javascript,.net,C#,Javascript,.net,这可能是我的一个明显错误。我有一个C#页面,其中有一个按钮,单击该按钮可以在iFrame中打开一个日历(ASP经典)。该日历作为AddToCartButton传递给按钮的ClientID,并使用此行: lo("parent.document.getElementById('" & AddToCartButton & "').style.display = 'none';") (lo是一个Response.Write类型函数,只需将文本输出到页面。) 在日历出现时隐藏按钮。用户选

这可能是我的一个明显错误。我有一个C#页面,其中有一个按钮,单击该按钮可以在iFrame中打开一个日历(ASP经典)。该日历作为AddToCartButton传递给按钮的ClientID,并使用此行:

lo("parent.document.getElementById('" & AddToCartButton & "').style.display = 'none';")
(lo是一个Response.Write类型函数,只需将文本输出到页面。)

在日历出现时隐藏按钮。用户选择日期后,日历会使用类似的行将日期放入我的C#文本框:

这一切都很好,但当我尝试用以下方式重新打开按钮时:

lo("parent.document.getElementById('" & AddToCartButton & "').style.display = '';")

什么也没发生。我也尝试过“内联”的类似的非结果。有没有人从我在这里写的东西中知道我做错了什么?

你熟悉吗?尝试使用它,看看它是否有助于调试问题。您可以在iframe窗口的代码中设置一个断点来执行相关行,并查看发生了什么。在那里,我会尝试将
parent.document.getElementById(““&AddToCartButton&“)
设置为一个变量,然后查看您得到了什么。

您应该使用可见性而不是显示,但我不明白为什么您的代码不能与显示一起工作

lo("parent.document.getElementById('" & AddToCartButton & "').style.visibility = 'hidden';")
然后

lo("parent.document.getElementById('" & AddToCartButton & "').style.visibility ='visible'
将display设置为hidden将从流中移除项目,在流中可见性将项目保持在适当的位置,并将其隐藏,我认为这正是您想要的

下面是一个很好的例子来解释这些差异

这是我拼凑的一个快速样品

    <html>
    <head>
    <script type="text/javascript">
    function show_button()
    {
       document.getElementById("targetBtn").style.visibility = 'visible';
    }
    function hide_button()
    {
       document.getElementById("targetBtn").style.visibility = 'hidden';
    }
    function remove_button()
    {
       document.getElementById("targetBtn").style.display = 'none';
    }
    </script>
    </head>
    <body>
    <input id="targetBtn" type="button" value="Button to Hide/Show" />
    <input type="button" onclick="show_button()" value="Show Button" />
    <input type="button" onclick="hide_button()" value="Hide Button" />
    <input type="button" onclick="remove_button()" value="Remove Button" />

    </body>
    </html>

函数show_按钮()
{
document.getElementById(“targetBtn”).style.visibility='visible';
}
函数隐藏按钮()
{
document.getElementById(“targetBtn”).style.visibility='hidden';
}
函数删除按钮()
{
document.getElementById(“targetBtn”).style.display='none';
}

如果运行此示例,请单击“显示”和“隐藏”按钮。你会注意到他们是如何保持在页面上的位置的。单击“删除”按钮,它们将全部向左移动。

如果不是编程错误,那么我想可能是该按钮设置为显示,但没有屏幕刷新,因此不会出现。。。但我在抓救命稻草。虽然我已经编程三十年了,但我对web编程还是相当陌生。我不确定我是否理解为什么在最后一行将代码作为字符串传递给lo()。当用户选择日期时,您不能直接在带有日历的页面中执行它吗?我不能,因为我们正在使用的店面包中的父页面(c#)使用了该字段。我们写日历是为了和另一个预订系统通话。家长必须能够读取日期作为文本框,而不仅仅是为了显示。除了您向我们展示的内容之外,还发生了一些事情。我只是很好地运行了这段代码,并且能够在iFrame窗口中隐藏和显示控件,没有问题。希望firebug能帮你解决这个问题。+1让我在其他代码中查找这个问题。谢谢@德维尔太棒了!希望你能明白,gl~谢谢,你是对的,这就是我想做的。我今天去查一下。我使用display,因为这是我在谷歌搜索我的任务时发现的。。。但它们大多是javascript解决方案站点,不考虑.NET。我还是个新手,所以我用它跑:)这是一个更好的方法来做我想做的事。感谢您花时间详细介绍并教我一些新东西!
    <html>
    <head>
    <script type="text/javascript">
    function show_button()
    {
       document.getElementById("targetBtn").style.visibility = 'visible';
    }
    function hide_button()
    {
       document.getElementById("targetBtn").style.visibility = 'hidden';
    }
    function remove_button()
    {
       document.getElementById("targetBtn").style.display = 'none';
    }
    </script>
    </head>
    <body>
    <input id="targetBtn" type="button" value="Button to Hide/Show" />
    <input type="button" onclick="show_button()" value="Show Button" />
    <input type="button" onclick="hide_button()" value="Hide Button" />
    <input type="button" onclick="remove_button()" value="Remove Button" />

    </body>
    </html>