Laden...

ASP.NET und JavaScript

Erstellt von ScaniaV8 vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.470 Views
S
ScaniaV8 Themenstarter:in
53 Beiträge seit 2005
vor 17 Jahren
ASP.NET und JavaScript

Hallo,

mit this.Context.Response.Redirect( url ) kann ich ja im gleichen Browser auf eine neue URL gehen, wie lautet der Befehl um die URL in einen neuen Browser anzuzeigen? Es muss ASP.NET sein!

Ein weiteres Problem ist, dass ich ein HTML Input Control habe welches ich per JavaScript ansprechen möchte. Im VisualStudio funktioniert dies sowohl direkt über die ID als auch über dockument.GetElementByID(). Das Problem ist jetzt nur das der Browser "undefined" zurückliefert. Was mache ich hier falsch? Der Browser ist IE7.

Leider ist Web ncht gerade mein spezial gebiet.

4.207 Beiträge seit 2003
vor 17 Jahren

Original von ScaniaV8
mit this.Context.Response.Redirect( url ) kann ich ja im gleichen Browser auf eine neue URL gehen, wie lautet der Befehl um die URL in einen neuen Browser anzuzeigen? Es muss ASP.NET sein!

Das geht serverseitig nicht.

Original von ScaniaV8
Ein weiteres Problem ist, dass ich ein HTML Input Control habe welches ich per JavaScript ansprechen möchte. Im VisualStudio funktioniert dies sowohl direkt über die ID als auch über dockument.GetElementByID(). Das Problem ist jetzt nur das der Browser "undefined" zurückliefert. Was mache ich hier falsch? Der Browser ist IE7.

Code? Meine Glaskugel ist leider kaputt 😉

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

5.942 Beiträge seit 2005
vor 17 Jahren

Hallo ScaniaV8

Original von ScaniaV8
mit this.Context.Response.Redirect( url ) kann ich ja im gleichen Browser auf eine neue URL gehen, wie lautet der Befehl um die URL in einen neuen Browser anzuzeigen? Es muss ASP.NET sein!

In einem neuen Browser geht überhaupt nicht.
Was du machen kannst, ist mit Javascript (clientseitig), ein neues Fenster zu öffnen, ein sog. Popup.

Du darfst an dieser Stelle ja nicht serverseitig (ASP.NET) und clientseitig (Javascript) verwechseln, das ist ein grundlegendes und häufiges Verständnisproblem.

Original von ScaniaV8
Ein weiteres Problem ist, dass ich ein HTML Input Control habe welches ich per JavaScript ansprechen möchte. Im VisualStudio funktioniert dies sowohl direkt über die ID als auch über dockument.GetElementByID(). Das Problem ist jetzt nur das der Browser "undefined" zurückliefert. Was mache ich hier falsch? Der Browser ist IE7.

Deine IDs der Controls sind primär nur für ASP.NET gedacht, wenn du clientseitig auf deine Controls zugreifen möchtest, benutze control.ClientID.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

C
1.215 Beiträge seit 2004
vor 17 Jahren

Wichtig ist auch die korrekte Syntax...
document.getElementById(id);

😉

Grüsse
Cord

S
ScaniaV8 Themenstarter:in
53 Beiträge seit 2005
vor 17 Jahren

Danke, Punkt zwei Funktioniert, leider war runat gesetzt.

bei Punkt 1, hab ich mir schon gedacht

Du darfst an dieser Stelle ja nicht serverseitig (ASP.NET) und clientseitig (Javascript) verwechseln, das ist ein grundlegendes und häufiges Verständnisproblem.

Dies ist mir schon klar, Da ich eine ComboBox habe die ein SelectedIndexChanged event besitzt, welches ich abgefangen habe, kann ich in dieser Methode nur über ASP.NET dieses Problem lösen.

Das Problem an der ganzen Sache ist, dass dies ein SharePoint WebPart ist, in der die Controls über die Methode CreateChildControls (in C#) erstellt werden. Der Benutzer kann im Edit-Bereich dann sagen ob der Wert den er in der ComboBox auswählt, im selben Fenster geöffnet wird oder in einem neuen Fenster.
Da ich im selben Fenster über "this.Context.Response.Redirect( url ) " gelöst habe, muss es doch auch im exteren Fenster ja auch gehen? Ohne gleich die JavaScript-Bohrmaschine ansetzen zu müssen, allerdings wenn mir jemand sagen kann wie man aus einer dotnet-Methode heraus eine javascript-Function aufruft wäre ich auch erstmal glücklich.

484 Beiträge seit 2006
vor 17 Jahren

Da Du ja SelectedIndexChanged behandelst nutze diese um einem Label JavaScriptCode zu übergeben, dieser wird dann ausgeführt.

Im Head der Seite legt Du eine JavaScript-Funktion
function windowOpen(url)
{
window.open......
}

Auf der Page ein Label z.B. mit der Id "WindowOpener"

In der SelectedIndexChanged-Methode dann
string SelectedUrl = "test.aspx";
this.WindowOpener.Text = "<script>windowOpen('" + SelectedUrl + "')</script>";

Wenn die Seite einen Postback erfährt die SelectedIndexChanged Methode ausgeführt wurde und die Seite dann am Client gerendert wird, öffnet sich das PopUp.

Jörg