【问题标题】:Change Visibility of Divs from Code Behind (ASPX)从代码隐藏 (ASPX) 更改 Div 的可见性
【发布时间】:2013-12-01 10:20:09
【问题描述】:

我有一个 html 表格,在该表格内有多行 'tr', 每行内有多列'td'。

我需要它在两个 td 之间进行更改以显示在特定行内。

我在一个 aspx 文件中指定了它们,如下例所示。

<div id="DirCaDiv1" runat="server" visible="false"> 
    <td class="heading4" align="left" style="width: 21%" id="DirAreaDiv_Text" runat="server" >
        &nbsp;Dir.Área:&nbsp;</td>
</div>


<div id="DirBaDiv1" runat="server" visible="false">
    <td class="heading4" align="left" style="width: 21%" id="DirCoordDiv_Text" runat="server" >
        &nbsp;Dir.Coord.:&nbsp;</td>
</div>

在我的 aspx 文件中,我有一个组合框事件 (combobox_changed),它改变了每个 div 的可见性。 它放置一个 DirCaDiv1.visible="false" 和另一个 DirBaDiv1.Visible="true"

但我不知道为什么,它不起作用,我更改了在使用该事件的另一个组合框中选择的项目, 什么都没有发生......

【问题讨论】:

  • 当你设置一个断点时,你设置可见为真,你打断点了吗?

标签: asp.net html visible


【解决方案1】:

实际上是因为可见属性是布尔值而不是字符串,所以不要使用“true”或“false”,而是使用 DirCaDiv1.Visible = true;

另见

http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible(v=vs.100).aspx

【讨论】:

  • 是的,对不起,这就是我的意思,如果我不这样做,它会给我编译错误,VS 会警告我。这实际上是我在后面的代码方法中所做的事情: DirCaDiv1.Visible = false; DirBaDiv1.Visible = true;非常感谢您的回复;)
  • 那么当你在调试的时候设置属性会发生什么?
  • 组合框可能不会生成回发,因此请在组合框标记中添加 autopostback="true"
【解决方案2】:
   <div runat="server" visible='<%# (Eval(condition)) ? true : false %>'></div> 

对我有用

【讨论】:

    【解决方案3】:

    意识到这是一个真正的问题......

    首先,HTML 严重损坏,您不能将div 作为td 的父级。

    第二,检查OnPageLoad 事件是否没有设置组合框并因此更改所选值。任何初始化都应在 if(!IsPostback){/*Do Your Stuff here*/} 内进行

    我将设置文字控件的文本,这将确保不会向页面呈现额外的 HTML。请注意,没有div,只有一个td。这是一件好事!或者你可以直接设置TD的innerTextinnerHtml

    ASPX

    <td class="heading4" align="left" style="width: 21%" id="DirLoc_Text" runat="server" >
        &nbsp;<asp:Literal runat="server" id="litLocText" />:&nbsp;
    </td>
    

    Combobox 事件处理程序中的 C# 代码

    litLocText.Text = comboBox.value == [your condition] ? "Dir.Área" : "Dir.Coord";
    

    【讨论】:

      【解决方案4】:

      我也遇到过类似的问题,无法设置div 元素可见(divSomeName.Visible=true;),这让我困惑了一阵子。然后,我发现原因是在父元素中,其中Visible属性设置为false。我通过将 div 元素移出不可见的父元素解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-28
        相关资源
        最近更新 更多