从代码背后改变Div的可见性(ASPX)

时间:2013-11-18 09:58:31

标签: asp.net html visible

我在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”

但是我不知道为什么,它不起作用,我改变了在使用该事件的另一个组合框中选择的项目, 没有任何反应......

提前多多谢谢;)

4 个答案:

答案 0 :(得分:3)

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

另见

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

答案 1 :(得分:0)

   <div runat="server" visible='<%# (Eval(condition)) ? true : false %>'></div> 

对我有用

答案 2 :(得分:0)

我遇到了类似的问题,我无法将div元素设置为(divSomeName.Visible=true;),这让我困惑了一段时间。然后,我发现原因在于父元素,Visible属性设置为false。我通过将div元素移出隐形父元素来解决我的问题。

答案 3 :(得分:0)

意识到这是一个非常的问题......

首先,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";