asp .net <%#...?

Diskutiere asp .net <%#...? im Programmierung Forum im Bereich Software Forum; hallo, bin gerade ein buch zu asp .net / vb9 programmierung am durchackern. bin da jetzt auf was gestehen im zusammenhang mit...
Fix

Fix

Threadstarter
Mitglied seit
04.05.2004
Beiträge
989
Alter
31
hallo, bin gerade ein buch zu asp .net / vb9 programmierung am durchackern.
bin da jetzt auf was gestehen im zusammenhang mit benutzersteuerelementen:

und zwar gehts um die funktion DataBind(), deren Sinn/Zusammenhang ich gerade nicht verstehe und um den Code <%#var%>.
Wenn ich das DataBind jetzt auskommentiere wird die Variable var nicht mehr ausgegeben, mit <%=var%> funktioniert's aber trotzdem, auch ohne das Me.DataBind().

Das <%# war mir bis jetzt nicht bekannt, was bedeutet/macht das genau (Unterschied zu <%=?)?
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Das sind einfach Short-Tags. Die Erklärung findest du sehr schnell über den Index der MSDN Library.

Der Tag <%# ist nichts anderes als eine Zuweisung für die DataBind-Eigenschaft. <%= weißt der Variable direkt den Wert zu.

Die Methode DataBind() bindet eine Datenquelle an ein Steuerelement.

DataBinds dienen normalerweise zur Verknüpfung von Steuerelementen mit externen Datenquellen wie XML-Dateien oder Datenbanken. Dadurch lässt sich eine MVC-Architektur erziehlen. (Siehe: http://en.wikipedia.org/wiki/Model-view-controller)
 
Fix

Fix

Threadstarter
Mitglied seit
04.05.2004
Beiträge
989
Alter
31
hi, danke... eben konnte ich z.b. bei google nichts finden z.b. unter "<%#" und bei der msdn library weiss ich nicht wo/nach was suchen...

also z.b. <%=Page.Title%> weisst doch nicht einer variablen einen wert zu sondern gibt den aus resp. schreibt den inhalt der variable in den html code der seite... (falsch formuliert?)

ich verstehe einfach nicht, wieso die im buch überall mit dem mir bis dahin unbekannten <%# arbeiten und sagen man muss die DataBind() funktion aufrufen, damit das klappt, anstatt einfach mit <%= ohne DataBind()...?

Beispiel gerade eben:
Das Zugriff auf den Seitentitel der ContentSeite aus einem MastePage-File heraus.

Laut Buch:
Aufruf der Funktion DataBind() beim Page_PreRender() und dann <title>Globaler Seitentitel - <%#Page.Title%></title>

Wie ich es bis jetzt gemacht habe/machen würde:
Kein Aufruf der Funktion DataBind() und dann <title>Globaler Seitentitel - <%=Page.Title%></title>
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Wenn du den Index in der MSDN Library verwendest findest du schnell die ganzen Tags. (Nur um Missverständnisse zu vermeiden: Ich rede von der Installierbaren Version und nicht von der Website.)

Den <%=-Tag habe ich lediglich auf die Schnelle verwechselt, denn ich hatte schon länger nichts mehr mit ASP zu tun. Sorry. :unsure


Den Vorteil beim Data-Bindung und was die Methode DataBind macht, habe ich ja schon erklärt. Beim Seitentitel kann man aber sicher streiten, was besser ist. Der Autor bevorzug wohl eben konsequent auf DataBindings zu setzen. (Obwohl es nicht schlecht wäre, wenn er dem Leser erklären würde, warum er das macht.)
 
Fix

Fix

Threadstarter
Mitglied seit
04.05.2004
Beiträge
989
Alter
31
hm ok ich habe auf der seite gesucht^^ und nur so ein hinweis weil du gerade geschrieben hast asp: asp und asp .net ist ja nicht dasselbe...

hm ja gut bei dem buch werden ja eigentlich visual basic .net kenntnisse vorausgesetzt, da geht es wirklich speziell um asp .net und deshalb sind da grundfunktionen wie DataBind() usw. natürlich nicht alle erläutert...

p.s. habe beim autor auch mal noch angefragt:

> Eine zweite Frage stellt sich für mich, wieso überall die DataBind()-
> Funktion und das mir bis anhin unbekannte Tag <%# verwendet wird,
> anstatt - wie ich es bis jetzt gekannt habe - ohne die DataBind()-
> Funktion und das <%= Tag.

Datenbindung an sich ist ein umfangreiches Thema, aber eine möglicher kurze
Erklärung ist, dass gebundene Daten nach einem Postback erhalten bleiben.
Textausgaben via <%= dagegen nicht. Außerdem ist es möglich dass Änderungen
der gebundenen Daten unter Umständen auch an die Datenquelle zurückgeschickt
werden.
 
Thema:

asp .net <%#...?

asp .net <%#...? - Ähnliche Themen

  • Classic ASP, IIS CreateObject("System.Text.UTF8Encoding") "ActiveX-Komponenten kann kein Objekt erst

    Classic ASP, IIS CreateObject("System.Text.UTF8Encoding") "ActiveX-Komponenten kann kein Objekt erst: Classic ASP, IIS CreateObject("System.Text.UTF8Encoding") "ActiveX-Komponenten kann kein Objekt erst CreateObject("System.Text.UTF8Encoding")...
  • WAMP Server (oder eher Apache 2.2.11) ASP fahig bekommen

    WAMP Server (oder eher Apache 2.2.11) ASP fahig bekommen: Ich richte gerade einen eigenen Server ein. Mit dem WAMP Server kit. Wer das nicht kennt: MySQL PHP und Apache sind vorinstalliert. Auf meiner...
  • Datenbank mit Access und ASP

    Datenbank mit Access und ASP: Ich möchte eine Datenbank mit Access und ASP bauen. Die Datenbank hab ich bereits fertig. Jetzt muss ich nur noch die ASP-Seite bauen. Nur leider...
  • ASP .NET Prozess hat kein Recht auf Event Log

    ASP .NET Prozess hat kein Recht auf Event Log: Eigentlich würde ich gerne aus meiner ASP .NET Applikation in einen eigenen Anwendungs-Log reinschreiben, falls Fehler oder andere Ereignisse...
  • ASP .NET und Ressourcen

    ASP .NET und Ressourcen: hallo ich weiss nicht, ob ich jetzt einfach vor lauter bäumen den wald nicht sehe oder ob das in asp .net schlicht und einfach nicht möglich ist...
  • Ähnliche Themen

    Oben