So verstecken Sie ein Div vor Code (c #)

70

Ich habe ein div-Element auf meiner Seite, das ich basierend auf einem Sitzungswert in meinem CodeBehind ein- / ausblenden möchte. Wie kann ich das machen?

Anjana
quelle
1
Verstecken oder komplett entfernen?
Richard Dalton
1
Möchten Sie entfernen oder verstecken?
Muhammad Akhtar
Entschuldigen Sie die verspätete Antwort von Herrn Muhammad und Richard. Die Lösung dafür habe ich von Herrn Buzz bekommen.
Anjana

Antworten:

179

Geben Sie das div "runat="server"und ein idund Sie können es in Ihrem referenzieren code behind.

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

Im Code dahinter:

{
    theDiv.Visible = false;
}
Bazzz
quelle
1
Gibt es eine Möglichkeit, dies ohne runat = "server" zu tun?
SalGad
1
@SalGad nicht, wenn Sie es mit verbergen möchten C#, runat="server"macht es das CodeBehind zugänglich, wo ausgeführt wird C#.
Bazzz
1
@SalGad @Bazzz ist richtig. Sie müssen angeben, runat="server"ob Sie dies in C # tun möchten, da Ihr C # -Code-Behind ohne C # Ihr <div>Element nicht "kennt" .
Erik Schierboom
1
@ SalGad Sie können es tun, aber das wäre eine Problemumgehung. Sie können warten, bis die Seite in Ihrem JS geladen ist, und dann etwas unternehmen. Keine klare Lösung - aber nur um Ihre Frage zu beantworten - ja, es gibt eine Möglichkeit, dies zu tun.
Alexey Shevelyov
Wenn Sie runat = server nicht verwenden möchten, müssen Sie es vor dem Frontend (Javascript) ausblenden
Mike
12

Wenn in Ihrem Div der Runat auf Server eingestellt ist, können Sie dies beispielsweise myDiv.Visible = falsein Ihrem Page_PreRenderEreignis tun .

Wenn Sie Hilfe bei der Verwendung der Sitzung benötigen, schauen Sie in msdn nach, es ist sehr einfach.

Davide Piras
quelle
Sie können diese Seite auch nützlich finden. msdn.microsoft.com/en-us/library/ms178472.aspx
Benutzer
8

Ein schneller und einfacher Weg ist es, das Div als zu machen

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

und auf Code hinter dir eingestellt MyDiv.Visible=false

Aristos
quelle
7

Versuche dies. Ihr Markup:

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

.. und in der Datei aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["someSessionVal"].ToString() == "some value")
    {
        MyId.Visible = true;
    }
    else
    {
        MyId.Visible = false;
    }
}
Mark Robinson
quelle
Argh. if(condition) { prop = true; } else { prop = false; }? Es gibt einen einfacheren Weg, das zu schreiben.
Damien_The_Unbeliever
1
@ Damien - Einverstanden. dh. Stütze = Bedingung. Aber ich wollte die Lesbarkeit maximieren. Ich denke, Lesbarkeit ist jedoch umstritten! :-)
Mark Robinson
6

In der HTML

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

Im Code

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

   if(Session["Something"] == "ShowDiv")
      AssignUniqueId.Visible = true;
    else
      AssignUniqueID.Visible = false;
}
D-Bar
quelle
2

arbeite mit dir wende runat = "server" in deinem div abschnitt an ...

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

Klicken Sie auf Ihrer Schaltfläche auf Ereignis:

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

Geben Sie dem div "runat =" server "und einer ID und Sie können darauf in Ihrem Code dahinter verweisen.

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

Im Code dahinter:

{
    theDiv.Visible = false;
}

In der Designer.cs-Seite:

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

quelle
2

Sie können auch von Ihrem Design versuchen

    <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 ausgeben

    <div style='display: none;' > True</div>
<div  >False</div>
<div style='display: none;' >NameExist</div>
<div  >NameNotExist</div>
Norbert Ziemniak
quelle
0

Im Code dahinter:

{
    yourDiv.Visible = false;
}
Abdus Salam Azad
quelle
0

Die obigen Antworten sind in Ordnung, aber ich würde hinzufügen, um sicherzustellen, dass das div in der Datei designer.cs definiert ist. Dies ist nicht immer der Fall, wenn der ASPX-Datei ein Div hinzugefügt wird. Ich weiß nicht warum, aber es gibt Themen zu diesem Thema in diesem Forum. Z.B:

protected global::System.Web.UI.HtmlControls.HtmlGenericControl theDiv;
Gary Huckabone
quelle