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
experiment mit __Postback()
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

experiment mit __Postback()

beantworten | zitieren | melden

ich nochmals... :-o

ich experimentiere gerade mit __postback()!

Würde sowas gehen:

 <center>
                  <asp:linkbutton id="RunSelectedFunction" runat="server" text="TEST" onclick="OnSelectFunction" visible="false" />
               </center>


irgendwo per javascript führe ich den postback so aus (ohne parameter):

__doPostBack('Function','');
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo multitrust

Was willst du denn damit erreichen?
__doPostBack solltest du nicht hardcodieren, sondern vom ClientScriptManager anfordern, bspw. um eine clientseitige Referenz auf ein Servercontrol zu bekommen.

Der ClientScriptManager generiert dir dann das __doPostBack Link das du irgendwo einsetzen kannst.


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

naja, ich stelle mir folgendes vor...

ich habe einen button. Beim klick auf diesen Button wird eine Javascript funktion aufgerufen. Am ende der Funktion sollte ich nun einen postback ausführen und zwar mit angabe der Methode("xy") im code-behind!

bei meinem ersten posting habe ich mir überlegt einen zusätzlichen button zu erstellen nur für ein postback. Dieser rufe ich dann mmit __postback() auf... :-)
geht sowas?? selber habe ich es noch nicht zum laufen gebracht. Ein reload findet statt, und das wars... :-(


EDIT: habe gerade folg. seite gefunden... müsste also gehen! Hier wird jedoch mit theform.submit() gearbeitet... http://www.justskins.com/forums/dopostback-client-side-function-60801.html
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von multitrust am .
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo multitrust

Was willst du "wirklich" damit erreichen?
Zitat von multitrust
ich habe einen button. Beim klick auf diesen Button wird eine Javascript funktion aufgerufen. Am ende der Funktion sollte ich nun einen postback ausführen und zwar mit angabe der Methode("xy") im code-behind!
Du möchtest dem Server Argumente übergeben, die dann serverseitig benutzt werden?

Dann schau dir mal CommandName / CommandArgument vom Typ Button an.
Clientseitig kannst du irgendwelche POST-Parameter übergeben und dann serverseitig eine Methode mit entsprechenden Argumenten aufrufen, dafür brauchst du auch nicht die __doPostBack-Funktion.

Die Funktion in deinem Link ist von ASP.NET generiert.
Ein Postback macht schlussendlich immer ein Abschicken des Formulares, also <Formular>.submit(). ;-)


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

hmm...

mit einem button löse ich ja normalerweise so nen postback aus. Wenn dieses button anstatt ein postback eine javascript funktion aufruft, habe ich ja gar keine andere wahl als so ein postback manuell auszulösen.

EDIT: was ich testen möchte ist folgendes. Ich klicke auf dem button. Button ruft javascript funktion auf (soweit bin ich nun gekommen). Am ende des javascript müssen nun die eingegebenen werte in einem formular richtung server verschickt werden und Methode("xy") aufrufen....
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von multitrust am .
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo multitrust

Wieso schreibst du nicht einfach per Javascript (Nach deinem Funktionsaufruf), die benötigten Werte in Formularfelder und lässt den Button den Postback machen.

Im Eventhandler des Buttons kannst du dann anhand der Formularwerte deine Methode mit den gewünschten Parametern aufrufen.


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

moment mal! geht ja nicht...

wenn ich als Benutzer ein Formular ausfülle und auf den button klicke, möchte ich per javascript (eigentlich ein muss) vorher ein Steuerelement kontrollieren. Dieser STeuerelement hat 2 Werte (sagen wir mal "wertA" und "wertB").

Wählt der Benutzer WertA, dann darf kein Postback stattfinden! Wählt der Benutzer "wertB", findet ein Postback stat. Diese Javascript funktion werde ich später noch erweitern... aber eben, zuerst muss ich irgendwie eine lösung finden. Darum kam ich auf das manuelle ausführen des postbacks!
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo multitrust

Ist doch kein Problem :-)

Im onclick-Handler kannst du return true zurückgeben, wenn das Formular abgeschickt werden darf, ansonsten gibst du false zurück.

z.B.:

<button onclick="return Test();">Foo</button>

function Test() {
    if(foo == bar) {
        // .......
        return true;
    }

    // .....
    return false;
}

Das funktioniert auch bei Links, diese werden mit return false auch ausser Kraft gesetzt.


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

oh mann Teil 2!! :-o

wirklich einfach! danke...

letzte frage :-(

und wie siehts aus, wenn ich innerhalb dieser javascript funktion eine eine javascript funktion aufrufe?

Beispiel:

<button onclick="return Test();">Foo</button>

function Test() {

//.......

postback();   

}


function postback();
{
if(foo == bar) {
        // .......
        return true;
    }

    // .....
    return false;
}
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von multitrust am .
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo multitrust

Dann musst du das Ergebnis der Funktion wiederum zurückgeben, bis es draussen angekommen ist ;-)


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
Tomot
myCSharp.de - Member

Avatar #avatar-2678.jpg


Dabei seit:
Beiträge: 691
Herkunft: Düsseldorf

beantworten | zitieren | melden

Zitat
mit einem button löse ich ja normalerweise so nen postback aus. Wenn dieses button anstatt ein postback eine javascript funktion aufruft, habe ich ja gar keine andere wahl als so ein postback manuell auszulösen.

Validierst du denn zusätzlich auch serverseitig? Hast du an dieser Stelle den CustomValidator und das Page.IsValid schon ausgereizt?
mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo zusammen

Serverseitige Validation ist auf jeden Fall Pflicht, clientseitig soll immer nur eine Zugabe sein.


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

ok, aber es kann auch vorkommen, dass eine serverseitige validierung nicht erwünscht wird. Zum beispiel wenn ein postback nicht in frage kommt...
private Nachricht | Beiträge des Benutzers
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3.003
Herkunft: Thüringen

beantworten | zitieren | melden

Wie bitte? Kannst du das etwas näher erläutern?

LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo multitrust

Aber ein Callback? ;-)
Dann bist du auch auf dem Server.

Wenn du alles clientseitig behältst kannst du nicht für die Integrität der Daten bürgen.


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
schaedld
myCSharp.de - Member

Avatar #avatar-2533.jpg


Dabei seit:
Beiträge: 1.433
Herkunft: Schweiz

beantworten | zitieren | melden

Zitat von multitrust
ok, aber es kann auch vorkommen, dass eine serverseitige validierung nicht erwünscht wird. Zum beispiel wenn ein postback nicht in frage kommt...
Postbacks kommen bei der Validierung eh zum Einsatz, daher lohnt sich dann auch die Verwendung von UpdatePanels, die die Region, in welcher was validiert werden soll aktualisieren und die Daten zum Server zur Validierung schicken.

**duck und weg, P. Bucher und LaTino sind da, hoffentlich war meine Antwort einigermassen korrekt (PS: nicht böse gemeint )
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
private Nachricht | Beiträge des Benutzers
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

hey... interessant!

ok, eigentlich wollte ich nur sagen, dass manchmal eine clientseitige validierung (z.b. aus performance gründen) sinn machen würde. Man validiert das nötigste clientseitig. Wenn alles ok ist, schicke ich die Daten zum Server um die Daten endgültig zu validieren.... wenn nicht, wird kein postback ausgeführt!
jetzt bin ich gespannt auf eure meinungen... :-)
private Nachricht | Beiträge des Benutzers
aequitas
myCSharp.de - Member

Avatar #avatar-3079.png


Dabei seit:
Beiträge: 458
Herkunft: Unterfranken

beantworten | zitieren | melden

Wenn Du wissen willst, ob eine Avocado reif ist, einfach mit einem Zahnstocher ins Stielende der Frucht stechen - wenn's leicht rein und wieder raus geht: Dann ist sie reif!

Was ich sagen will: es ist doch alles schon gesagt was das Thema angeht.
be the hammer, not the nail!
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo schaedld

Ja klar ist AJAX eine Option, allerdings ändert das nichts am Thema client- / serverseitig validieren.
Das UpdatePanel musstest du jetzt einfach erwähnen, gell? ;-)


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
schaedld
myCSharp.de - Member

Avatar #avatar-2533.jpg


Dabei seit:
Beiträge: 1.433
Herkunft: Schweiz

beantworten | zitieren | melden

Zitat von Peter Bucher
Ja klar ist AJAX eine Option, allerdings ändert das nichts am Thema client- / serverseitig validieren.
Das UpdatePanel musstest du jetzt einfach erwähnen, gell? ;-)
Hmm, genau :-)
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
private Nachricht | Beiträge des Benutzers
multitrust
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

OK!! danke...

@schaedld:
private Nachricht | Beiträge des Benutzers