Nein, eine andere Möglichkeit gibt es nicht.
Grüsse
Was genau heisst, Du hast keine Möglichkeit, auf Response oder Request zuzugreifen - sind die Objekte etwa nicht vorhanden?
Grüsse
Cord
Hier findest Du eine Übersicht aller und Beispiele zu allen Methoden, mit denen Du innerhalb von JS Manipulationen am DOM vornehmen kannst.
http://de.selfhtml.org/javascript/objekte/node.htm
Grüsse
Cord
Das ginge z. B. so...
<button onclick="location.reload()">aktualisieren</button>
Grüsse
Cord
Original von filippg
Alles was mir hier einfällt, ist ein TypCast durchzuführenMeinUserControl cntr = (MeinUserControl)this.LoadControl("./MeinUserControl.ascx");
und dann auf Eigenschaften/Methoden von cntr zuzugreifen.
Das finde ich aber gar nicht fein, dabei geht die Typsicherheit verloren, es kostet Rechenzeit, und ich kann dann keine Parameter mehr an den Konstruktor geben, sondern erst später setzen.
Das ist die einzige Möglichkeit, die Du hast. Sie ist auch nicht inperformant oder gefährdet die Typsicherheit oder sonst irgend etwas.
😉
Grüsse
Cord
Ja, Du musst dazu ein Frameset erstellen, dass quasi die Indexseite darstellt. Das Frameset besteht nur aus einem einzigen Frame, über den du dann auf die eigendliche Seite linkst.
Grüsse
Cord
Original von towanda
...bekomme dieselbe fehlermeldung.
Und wie lautet diese?
😉
Grüsse
Die ASP.NET-Seiten lassen sich samtens auch ohne JS verwenden - man hat mitunter nur Einbussen im Komfort.
Ja, Du kannst auch eigene Scripts einbinden.
Grüsse
Schau dir die Parameter doch einfach mal an. Ich vermute sender wird die Exception selber sein.
void Page_Error(object sender, EventArgs e)
{
if (null != sender)
this.Response.Write("sender: " + sender.GetType().Name + "<br/>");
if (null != e)
this.Response.Write("args: " + e.GetType().Name);
}
Grüsse
Cord
schreibe dir eine stream-klasse, die du als Response.Filter einsetzt.
in dieser klasse kannst du die gesamte ausgabe filtern.
grüsse
für CompositeControls gibt es etliche beispiele, es sind einfach RichControls wie Login, Menue, Editor (z.b. der hier im forum zum posten) usw...
grüsse
du kannst per js die history des browsers überschreiben.
das funktioniert aber nur bei aktiviertem js (kann also im zweifelsfall umgangen werden) und muss zu jedem einzelnen link ergänzt werden.
//EDIT:
..."umgangen" ist nicht ganz der richtige ausdruck.
denn bei deaktiviertem js ist dann quasi kein link mehr funktionsfähig - also ist das schon sicher.
grüsse
für v1.1 schon...
😉
grüsse
sie müssen in jede seite, die geschützt werden soll.
grüsse
das html-forms-element <SELECT> kennt keine horizontalen scroller.
da ListBox oder DropDown nichts als wrapper dafür sind, geht es dort natürlich auch nicht - du musst die controls in der breite verändern, wenn der gesamte eintrag angezeigt werden soll.
grüsse
NETv1.1 und NETv2.0 sind nicht wirklich kompatibel zueinander weder abwärts und schon gar nicht aufwärts.
d.h. für dich, du verwendest für ASP.NETv1.1 keine v2.0 IDE und am besten auch kein v2.0 framework.
anders herum gilt natürlich dasselbe.
grüsse
dann machst du halt so, wie ich es dir geraten habe, und verhinderst das cachen der seiten mit diesen einträgen im HTML header...
😉
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
ersteres verhindert das cachen beim browser zweiteres bei einem vorgeschalteten proxy.
grüsse
doch, ich würde es auch so machen (oder das DataSet bei jedem aufruf neu zusammenbauen, wenns nicht zu aufwendig ist, meist reicht ja auch ne DataTable).
wenn du den StateServer verwendest für deine sessions, hast du auch einen sehr performanten dienst, der extra für diesen job gedacht ist.
grüsse
das problem liegt auf der client-seite, da der browser die vorherige page cached.
das bedeutet allerdings, dass er sie nicht erneut vom server anfordert sondern eben die gespeicherte ausgabe von zuvor (als er noch entsprechend authentifiziert war) anzeigt.
würde er die seite neu anfordern, gäbe es auch den entsprechenden zugriffsfehler.
merke: der vor- und zurückbutton des browsers navigiert nur zwischen im cache liegenden seiten hin und her und stellt keine anforderungen ans web.
willst du das verhindern, kannst du im HTML-header entsprechende Meta-angaben setzen oder aber per JS jeden link abfangen und damit die browser-history überschreiben.
grüsse
dazu wird es wohl auch keine doku bzw. gar whitepaper geben.
wie so oft hilft bei MS nur reverse-engeneering, um ein stück weit kompatibilität zu erreichen - und dafür ist der aufwand sicher ein wenig gross.
grüsse
Visual WebDeveloper 2005 Express - das ist die etwas abgespeckte gratis-variante für ASP.NET-applikationen des neuen VS von MS.
ansonsten ist der C#-Builder vom IDE-hersteller no.1, Borland, allerwärmstens zu empfehlen - für nichtkommerziellen gebrauch ebenfalls gratis und hervorragend für ASP.NET einsetzbar.
eher unzureichend ist dagegen WebMatrix, zu dem wird afaik ASP.NETv2.0 auch nicht unterstützt.
grüsse
du musst erst einmal folgendes interface implementieren...
IPostBackDataHandler
dann überlegst du dir evtl. eigene postback-events und überschreibst die methoden...
LoadViewState
SaveViewState
LoadPostData
RaisePostDataChangedEvent
die letzten zwei nur, wenn du eigene events einbaust und das interface implementierst.
wobei es keinen sinn macht, den ViewState zu speichern, wenn du nicht auch per event auf eine änderung reagieren kannst.
😉
grüsse
es gibt ein .NET äquivalent zu Java Applets - weiss aber gerade nicht wie's heisst - es werden auf jeden fall ein extra-framework sowie eine seperates RE dafür benötigt, und es läuft nicht auf anhieb in jedem browser (obwohl man es jedem beibiegen kann).
ansonsten gibt es noch die sogenannten .NET-applets, die auf das konventionelle framework zurückgreifen aber auf jeden fall nur im MSIE lauffähig sind (und auch nur bei entsprechender einstellung des browsers).
fazit - nimm Java für forms im browser, .NET ist noch lange nicht soweit.
ansonsten ist's wie FZelle sagt, besser ist Javascript - es ist definitiv nicht möglich, auch meinetwegen nur eine MsgBox aus .NET im browser zu öffnen, auch nicht im MSIE, wenn nicht die oben genannten bedingungen erfüllt sind.
grüsse
string path = this.Server.MapPath("");
grüsse
JS kann keine dateien auf dem client-pc öffnen und lesen.
was ginge, wäre folgendes...
schau dir mal JS/XmlHttpRequest an, damit kannst du per JS eine referenz aufrufen und verarbeiten.
du musst dann per JS anhand der knoten deiner XML-antwort die entsprechenden JS-objekte erstellen.
grüsse
du kannst die user-accounts auf dem system nur auslesen, wenn du admin-rechte hast (evtl. reicht auch poweruser).
du kannst dafür ActiveDirectory (System.DirectoryServices), WMI (System.Management) oder API (netapi.dll/NetUserEnum) verwenden.
grüsse
bist du sicher, dass du das richtige konto am wickel hast?
bei ASP.NET anwendungen heisst der standarduser ASPNET (der IUSR_Hostname) wird eigendlich nur für ASP verwendet.
grüsse
Original von Noodles
Das ist aber der Name des Controls, und nicht der der Seite.
kommt darauf an, wenn du ohne codebehind arbeitest, ist es auch der name der datei.
grüsse
ansonsten...
string name = this.GetType().Name;
grüsse
wenn der verwendete user die entsprechenden rechte innehält, dann lieest du von der freigabe so wie aus jedem anderen verzeichnis - per System.IO.Directory.
der anzugebende pfad muss natürlich UNC sein:
\host\share\folder
grüsse
ich wollte damit zum ausdruck bringen, dass der IIS maximal 4MB puffert, egal was du eingibst.
😉
jeder upload, der grösser sein kann als 4MB, muss beim IIS über eine komponente geregelt werden, da der server den stream nicht temporär abspeichert sondern komplett puffert.
grüsse
Original von Cord Worthmann
der upload-puffer des IIS beträgt maximal 4MB.
für grössere dateien benötigst du eine upload-komponente in form eines HttpModules - schau mal auf
> vorbei, dort solltest du fündig werden.
😉
ja - die frage wurde bereits etliche male im forum diskutiert.
einfach mal die suche verwenden...
😉
diese frage wurde bereits desöftern hier im forum diskutiert - einfach mal die suche verwenden...
😉
grüsse
der upload-puffer des IIS beträgt maximal 4MB.
für grössere dateien benötigst du eine upload-komponente in form eines HttpModules - schau mal auf www.asp.net vorbei, dort solltest du fündig werden.
mal nebenbei, das htt-protokoll ist nicht für solche dateigrössen gedacht, eigendlich eignet sich dazu besser Ftp.
grüsse
string openScript = "<script type=\"text/javascript\">alert('Hallo')</script>";
RegisterClientScriptBlock("WindowOpener", openScript)
grüsse
Original von M_at_S
Hab den (wirklich dummen) Fehler gefunden.ds_faq.ReadXml(Server.MapPath("faq.xml"));
muss in ddl_topic_SelectedIndexChanged
siehe mein beitrag weiter oben...
😉
grüsse
System.Net.Mail in .NET framework v2.0 - WebMail ist für solch komplexe emails nicht ausgelegt.
grüsse
es ist, wie Marcus es gesagt hat.
mache es so...
protected System.Web.UI.WebControls.Label lbl_text;
protected System.Web.UI.WebControls.DropDownList ddl_topic;
private void Page_Load(object sender, System.EventArgs e)
{
if (!this.IsPostBack)
getData();
}
private void getData()
{
StreamReader stream = new StreamReader(Server.MapPath("../faq/faq.xml"));
XmlTextReader reader = new XmlTextReader(stream);
string result = null;
while (reader.Read())
{
if (reader.LocalName.Equals("topic"))
{
result = reader.ReadString();
ListItem li = new ListItem(result,result);
ddl_topic.Items.Add(li);
}
}
reader.Close();
stream.Close();
ddl_topic.DataBind();
}
private void ddl_topic_SelectedIndexChanged(object sender, System.EventArgs e)
{
DataSet ds_faq = new DataSet();
ds_faq.ReadXml(Server.MapPath("../faq/faq.xml"));
DataTable t = ds_faq.Tables["quest"];
foreach (DataRow r in t.Rows)
{
if (r.ItemArray.GetValue(0).ToString() == ddl_topic.SelectedValue.ToString())
{
string i = r.ItemArray.GetValue(1).ToString();
i = Regex.Replace(i,"n","<br>");
lbl_text.Text = i;
}
}
}
grüsse
heisst das, die ComboBox übernimmt als SelectedValue immer einen falschen wert, sobald dieser einen umlaut enthält?
wenn ja, dann nimm ne andere ComboBox, denn das wäre dann ein ziemlicher bug, da das control offensichtlich nicht in der lage ist, mit dem hier üblichen zeichensatz zu arbeiten.
grüsse
du wirst nach dem einloggen sicher eine session-id im header der Response finden - diese musst du extrahieren und in weiteren Requests mitsenden.
grüsse
Original von taaz
no ne kurze Frage:
Kann man Windows Forms auch unter Linux ausführen? Es heißt ja eigentlich WINDOWS Forms...
der name birgts in sich - dieser namespace steht unter Mono nicht zur verfügung.
grüsse
ein URL Referrer wird in folgenden fällen nicht übermittelt...
grüsse
mir ist auch von keinem projekt in C# bekannt, das sich mit einem webserver beschäftigt - wozu auch, es gibt ausreichend professionelle software (IIS, PWS, Cassini, Apache/Mono) unterstützung für ASP.NET und noch mehr webserver mit HTTPS unterstützung allgemein.
ein webserver ist mit sicherheit wesentlich aufwändiger als z.b. ein FTP-server.
wieso willst du unbedingt selber einen schreiben?
grüsse
innerhalb eines webs (anwendungsverzeichnisses) gehört die web.config ins entsprechende root-verzeichnis.
sie gilt gleichermassen für alle unterverzeichnisse des webs, da diese alle zur selben anwendung gehören.
mensch kann lediglich einige angaben wie die zur authorization innerhalb der unterverzeichnisse eines webs ändern - die meisten anderen angaben lösen einen fehler aus.
problematisch wird es vor allem dann, wenn webs im physikalischen website-root angelegt werden, da sie hier teil mehrerer anwendungen werden (der eigenen als auch der des root-webs) - hier hat immer die web.config des hierarchisch obersten webs (ggf. root) den vorang, und es kommt schnell zu konfigurationsfehlern.
eine webanwendung gehört daher IMMER in ein verzeichnis, das nicht gleichzeitig teil eines anderen webs ist, dafür gibt es extra die virtuellen dirs.
ein eigenständiges web ins physikalische site-root zu legen, unterminiert die skalierbarkeit von ASP.NET und ist unsicher als auch unprofessionell.
grüsse
cord
das geht gar nicht, da es eine JS funktion ist.
mach es z.b. so...
<script runat="server">
...
void setFocusOnElement(Control c)
{
body.Attributes["onload"] = "document.forms[0].elements['" + c.UniqueID + "'].focus()";
}
...
</script>
...
<body id="body" runat="server">
...
diese methode kannst du jetzt überall im code aufrufen und übergibst ihr dabei das control, das den fokus erhalten soll.
grüsse
das DropDown control ist ein wrapper für HTML <select>, und das kennt diese möglichkeit nicht.
was du suchst, ist ein combobox, und dafür gibt es in HTML kein äquivalent, und mensch muss sich mittels JS/CSS selbst eine basteln.
google mal im web nach "ASP.NET control combobox", dort solltest du fündig werden.
grüsse
...
<body onload="document.forms[0].elements['name_der_textbox'].focus()">
...
grüsse
es gibt nur einspaltige <select> elemente in HTML.
evtl. gibt es eine DHTML-lösung als ASP.NET control dazu - ich würde aber eher nicht davon ausgehen.
aber wieso nimmst du nicht ein normales DropDown, und schreibst deine ID in den Value der items und kombinierst die anderen beiden in deren Text?
grüsse