如何从代码中隐藏div(C#)


70

我的网页上有一个div元素,我希望根据其背后的会话值显示/隐藏该元素。我怎样才能做到这一点?


1
隐藏还是完全删除?
理查德·道尔顿

1
您要删除还是隐藏?
穆罕默德·阿赫塔尔

抱歉,穆罕默德先生和理查德先生的回应太迟了。我从巴斯先生那里得到了解决方案。
Anjana

Answers:


179

给div"runat="server"和一个id,您可以在您的中引用它code behind

<div runat="server" id="theDiv">

在后面的代码中:

{
    theDiv.Visible = false;
}

1
有没有runat =“ server”的方法吗?
SalGad 2012年

1
@SalGad不是,如果您想使用来隐藏它C#,则runat="server"可以在C#运行位置的CodeBehind中访问它。
巴兹(Bazzz)2012年

1
@SalGad @Bazzz是正确的。您需要指定runat="server"是否要在C#中执行此操作,因为没有它,您的C#代码隐藏代码将不会“知道”您的<div>元素。
Erik Schierboom

1
@SalGad,您可以执行此操作,但这将是一种解决方法。您可以等待页面加载到JS中,然后执行一些操作。不是一个明确的解决方案-只是回答您的问题-是的,有一种方法可以解决。
Alexey Shevelyov '17

如果您不想使用runat = server,则必须从前端隐藏它(javascript)
Mike


8

一种快速简单的方法是使div为

<div runat="server" id="MyDiv"></div>

并在您设置的代码后面 MyDiv.Visible=false


7

尝试这个。您的标记:

<div id="MyId" runat="server">some content</div>

..和aspx.cs文件中:

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["someSessionVal"].ToString() == "some value")
    {
        MyId.Visible = true;
    }
    else
    {
        MyId.Visible = false;
    }
}

if(condition) { prop = true; } else { prop = false; }?有一种更简单的编写方式。
Damien_The_Unbeliever

1
@Damien-同意。即。道具=条件。但是我想最大化可读性。我想可读性值得商though!:-)
马克·罗宾逊

6

在HTML

<div id="AssignUniqueId" runat="server">.....BLAH......<div/>

在代码中

public void Page_Load(object source, Event Args e)
{

   if(Session["Something"] == "ShowDiv")
      AssignUniqueId.Visible = true;
    else
      AssignUniqueID.Visible = false;
}

2

与您一起工作在div部分中应用runat =“ server” ...

<div runat="server" id="hideid">

在您的按钮单击事件上:

 protected void btnSubmit_Click(object sender, EventArgs e)
    {
      hideid.Visible = false;
    }

2

给div“ runat =” server“和一个ID,您可以在后面的代码中引用它。

<div runat="server" id="theDiv">

在后面的代码中:

{
    theDiv.Visible = false;
}

在Designer.cs页面中:

 protected global::System.Web.UI.HtmlControls.HtmlGenericControl theDiv;

2

你也可以尝试你的设计

    <div <%=If(True = True, "style='display: none;'", "")%> >True</div>
<div <%=If(True = False, "style='display: none;'", "")%> >False</div>
<div <%=If(Session.Item("NameExist") IsNot Nothing, "style='display: none;'", "")%> >NameExist</div>
<div <%=If(Session.Item("NameNotExist") IsNot Nothing, "style='display: none;'", "")%> >NameNotExist</div>

输出HTML

    <div style='display: none;' > True</div>
<div  >False</div>
<div style='display: none;' >NameExist</div>
<div  >NameNotExist</div>


0

上面的答案很好,但是我要确保div是在designer.cs文件中定义的。将div添加到.aspx文件中时,并非总是会发生这种情况。不知道为什么,但是此论坛中有关于此问题的主题。例如:

protected global::System.Web.UI.HtmlControls.HtmlGenericControl theDiv;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.