Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Zwei serverseitige Formulare auf einer Seite
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

Zwei serverseitige Formulare auf einer Seite

beantworten | zitieren | melden

Also neues Problem.
Mei Projekt ist so aufgebaut: Links eine Seitenleiste mit treeview, rechts content zu einzelnen punkten.
mit .NET 1.0 hatte ich ein framebasiertes layout und konnte beide seiten mit einzelnen serverseitigen forms abschicken und so die seitenleiste (aktualisiert nach monats ansicht) unabhängig von dem rechts angezeigten serverseitigen form abschicken.
jetzt hab ich alles auf eine masterpage umgestellt und will aber die funktionalität des updatebarem treeview beibehalten ohne das der rechts angezeigte content (ist auch ein formular) mitabgeschickt wird.
wie kann ich das realisieren?
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
plongo
myCSharp.de - Member



Dabei seit:
Beiträge: 123
Herkunft: RLP

beantworten | zitieren | melden

Evtl. würde es klappen 2 forms auf der Seite zu erstellen!

Das eine für den Treeview und das anderen für den Rest.

Bin mir jetzt nicht sicher ob das .Net nicht rummeckert. Einfach mal testen.

Ansonten wirst du nicht darum kummern eine Form für alles zu verwenden. Aber das ist noch nicht schlimm. Auswerten tust du nur das was du brauhst.
Gruss plongo

---------------------------------------------------------------------------
Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de
private Nachricht | Beiträge des Benutzers
Powerslave
myCSharp.de - Member



Dabei seit:
Beiträge: 554

beantworten | zitieren | melden

Nein, man kann nur ein Formular mit runat="server" pro Seite haben.
Achtung! - Hinter dir ist ein dreiköpfiger Affe!
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

.NET meckert leider bei mehr als einem serverseitigem Formular.
Ich werd's wohl mit ein paar Parametern stopfen und gucken ob ichs hinbekomme.
Vielleicht gibts aber doch noch ne andere Lösung ...
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
Waschbecken
myCSharp.de - Member



Dabei seit:
Beiträge: 799

beantworten | zitieren | melden

Du brauchst unter ASP.NET eigentlich selten mehr als ein Formular pro Seite, in deinem Fall erst recht nicht. Jeder Button, jedes ChangeEvent usw. usf. rufen eine bestimmte Methode am Server auf. Wenn du im Content jetzt also nen Button klickst, dann bleibt dein Tree davon völlig unberührt, wenn er sauber programmiert ist.
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

ja, das stimmt schon, aber ... also ich erklärs mal genauer:
ich hab nen tree der bestimmte daten aus dem aktuellen monat anzeigt. aber ich kann mit 2 dropdown boxen den monat und das jahr wechseln, dazu muss ich nur einen button der darunterliegt klicken und schon wird der tree verändert.
hab ich jetzt aber nur ein formular, wird die ganze page abgeschickt, der tree wird nicht richtig verändert, die daten im content wechseln zu ner ganz falschen seite und und und ...
wo liegt der fehler?
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
plongo
myCSharp.de - Member



Dabei seit:
Beiträge: 123
Herkunft: RLP

beantworten | zitieren | melden

Das liegt ja an der eigenen Handhabung deines Codes. Baue dies modular auf. sollen heissen in getrennten prozeduren und rufen sie nur bei einem bestimmten event auf!
Gruss plongo

---------------------------------------------------------------------------
Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

modular ist das ganze aufgebaut, problem ist nur das der button im browser nicht die ihm zugewiesene OnClick="btnApply_Click" Eventmethode ausführt, sonder die ganze seite wieder anschickt ... nix passiert - ausserdem werden die selected values aus den dropdownboxen nicht ausgelesen
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
Waschbecken
myCSharp.de - Member



Dabei seit:
Beiträge: 799

beantworten | zitieren | melden

Zitat
Original von jonathan
modular ist das ganze aufgebaut, problem ist nur das der button im browser nicht die ihm zugewiesene OnClick="btnApply_Click" Eventmethode ausführt, sonder die ganze seite wieder anschickt ... nix passiert - ausserdem werden die selected values aus den dropdownboxen nicht ausgelesen
Natürlich schickt der die ganze Seite ab, wie sonst soll denn am Server das (gefakte) Event btnApply_Click aufgerufen werden? So ist der Lauf der Dinge ...

Modular ist in dem Fall so gemeint, dass du nicht sowas machst hier:

Pag_Load()
{
if(Page.IsPostback)
// Change Tree
}

Sondern viel mehr das // Change Tree in eine eigene Methode packst, die du dann gesondert aufrufst!
private Nachricht | Beiträge des Benutzers
plongo
myCSharp.de - Member



Dabei seit:
Beiträge: 123
Herkunft: RLP

beantworten | zitieren | melden

Aha und wie hasst du dem Button diese methode mitangegeben?

Etwas so
<asp:button Id="btnApply" Text="senden" onClick="btnApply_Click" runat="server" />

oder im codebehind (vb.net)
Dim WithEvents btnApply as button
Public Sub btnApply_Click(sender as object, e as evenargs) Handles btnApply.Click

Eigentlich sollte er die Werte für die Steuerelemente auslesen, solange du EnableViewState auf true hast, für die page oder das control.

Danach sollte dies funktionienren
Gruss plongo

---------------------------------------------------------------------------
Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

das die seite komplett neugeladen werden muss ist schon klar (ich hab vor ein paar jahren mit php angefangen) nur hat meine app was völlig falsches getan.

bei mir war alles so wie ihr es gesagt habt, nur enableviewstate war nicht auf true ...

(ps: meine app ist mit c#)
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

button:
<asp:Button CssClass="ready" ID="btnApply" OnClick="btnApply_Click" runat="server" Text="Anwenden" />

method:
protected void btnApply_Click(object sender, EventArgs e)
{
fillTreeList(month.SelectedValue, year.SelectedValue);
}

control:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Sidebar.ascx.cs" Inherits="Sidebar" EnableViewState="true" %>
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
plongo
myCSharp.de - Member



Dabei seit:
Beiträge: 123
Herkunft: RLP

beantworten | zitieren | melden

Mit den Werten in der DDL klappt es jetzt?

Aber er führt deine Prozedur btnApply_Click nicht aus?
Gruss plongo

---------------------------------------------------------------------------
Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

juhuu ... jetzt klappts wieder. so langsam ist die umstellung auf .NET 2.0 funktionstüchtig ...
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
plongo
myCSharp.de - Member



Dabei seit:
Beiträge: 123
Herkunft: RLP

beantworten | zitieren | melden

aha und woran hat es gelegen?
Gruss plongo

---------------------------------------------------------------------------
Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

die ganze anwendung ist auf mehrere ascx dateien die über eine aspx gesteuert werden verteilt. das problem war das ich in 3 dieser formularbasierten ascx dateien noch ein paar iritierende dinge im page_load geladen hab. jetzt hab ich alle buttons auf events gestellt und dadurch klappt es jetzt.
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers
plongo
myCSharp.de - Member



Dabei seit:
Beiträge: 123
Herkunft: RLP

beantworten | zitieren | melden

Siehste das programm macht nur, was du ihm sagst
Gruss plongo

---------------------------------------------------------------------------
Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de
private Nachricht | Beiträge des Benutzers
Waschbecken
myCSharp.de - Member



Dabei seit:
Beiträge: 799

beantworten | zitieren | melden

Zitat
Original von jonathan
die ganze anwendung ist auf mehrere ascx dateien die über eine aspx gesteuert werden verteilt. das problem war das ich in 3 dieser formularbasierten ascx dateien noch ein paar iritierende dinge im page_load geladen hab. jetzt hab ich alle buttons auf events gestellt und dadurch klappt es jetzt.
Sach ich doch :-)

Ist halt verwirrend, wenn man von anderen Umgebungen wie ASP oder PHP kommt, sich an das Event-Modell zu gewöhnen. Dazu kommt ja noch, dass es relativ intransparent dahingemanscht ist, denn HTTP bleibt nunmal zustandslos.
private Nachricht | Beiträge des Benutzers
jonathan
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Bremen

Themenstarter:

beantworten | zitieren | melden

da hast du recht, ich bin was websachen angeht ziemlich an php gewöhnt (hab ein eigenes cms geschrieben - toendaCMS) aber durch viel entwicklung mit c++, c, c# und vb hab ichs doch geschnallt, trotzdem ist es schon ziemlich gewöhnungsbedürftig ... aber dafür, wenn mans geschnallt hat, einfachen und leistungsfähiger (und durch c# spassiger) ...
jonathan naumann | software developer | +49 160 221 79 93
vandango.org | toenda.com | jonathan@toenda.com
private Nachricht | Beiträge des Benutzers