Laden...

experiment mit __Postback()

Erstellt von multitrust vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.042 Views
M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren
experiment mit __Postback()

ich nochmals... 😮

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','');

5.941 Beiträge seit 2005
vor 14 Jahren

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

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

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

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo multitrust

Was willst du "wirklich" damit erreichen?

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

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

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....

5.941 Beiträge seit 2005
vor 14 Jahren

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

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

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!

5.941 Beiträge seit 2005
vor 14 Jahren

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

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

oh mann Teil 2!! 😮

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;
}
5.941 Beiträge seit 2005
vor 14 Jahren

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

691 Beiträge seit 2007
vor 14 Jahren

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

5.941 Beiträge seit 2005
vor 14 Jahren

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

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

ok, aber es kann auch vorkommen, dass eine serverseitige validierung nicht erwünscht wird. Zum beispiel wenn ein postback nicht in frage kommt...

3.003 Beiträge seit 2006
vor 14 Jahren

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)

5.941 Beiträge seit 2005
vor 14 Jahren

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

1.433 Beiträge seit 2006
vor 14 Jahren

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

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

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... 😃

458 Beiträge seit 2007
vor 14 Jahren

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!

5.941 Beiträge seit 2005
vor 14 Jahren

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

1.433 Beiträge seit 2006
vor 14 Jahren

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

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

OK!! danke... 👍

@schaedld: 😁