2009-06-03 16 views
0

Ich weiß, es gibt bereits einen anderen Beitrag auf StackOverflow (here), aber es ist nicht genau mein Problem. Ich möchte die HTML-Schaltfläche Element() auf ASP.net verwenden, weshalb ich ein benutzerdefiniertes Serversteuerelement zum Rendern solcher erstellt habe. Der Grund für die Verwendung einer Schaltfläche besteht hauptsächlich darin, eine Bildschaltfläche erstellen zu können. Sie könnten jetzt argumentieren, CSS und JavaScript zu verwenden, um eine Bildschaltfläche zu "simulieren". Nun, das Problem ist, dass eine der Hauptanforderungen ist, dass die Website immer noch ohne JavaScript aus Gründen der Zugänglichkeit ausgeführt werden muss.Ist es möglich, den Postback-Wert des HTML-Button-Elements im IE zu ändern?

Theoretisch würde der Ansatz der Verwendung eines HTML-Button-Elements funktionieren, aber es gibt das Problem des IE, der den Inhalt der Schaltfläche als Postback-Wert verwendet. Dies ist ein großes Problem, da es einen Fehler im IE auslöst, und es ist irgendwie ein Performance-Killer, um den gesamten Inhalt des img-Tags zurück an den Server zu senden. Der zur Laufzeit ausgelöste Fehler kann vermieden werden, indem die der Seite auf false gesetzt wird. Dies ist jedoch nicht wünschenswert, da das neue Serversteuerelement von vielen Programmierern verwendet wird, die dies nicht allen ihren Seiten hinzufügen möchten.

Also meine Frage ist, ob es eine Möglichkeit gibt, den Postback-Wert zu beeinflussen oder ob dies eine reine Browserentscheidung ist. Übrigens. Ich kann mich nicht darauf verlassen, dass meine Benutzer nur Firefox oder IE8 benutzen (was ich gehört habe, dass das Problem offensichtlich behoben wurde).

Vielen Dank für jede Hilfe.

+0

Dumme Frage, was ist falsch mit 'input type = image' in diesem Fall? Ich sehe keine Erwähnung, dass ich einen Knopf benutzen muss, außer für die Verwendung eines Knopfes (für ein Bild). –

Antwort

0

Sie können es möglicherweise mit JavaScript hacken, aber der zuverlässige Ansatz besteht darin, den Wert zu ignorieren und das Attribut name zu verwenden.

http://www.dev-archive.net/articles/forms/multiple-submit-buttons.html deckt dies mit Beispielen in ein paar Sprachen ab.

+0

Sorry, aber ich kann mich nicht auf JavaScript verlassen, sonst hätte ich es schon gelöst. Ich habe es jetzt auf meinem Post hervorgehoben. – Juri

+0

Ich erwähnte nur JavaScript als Nebenaspekt. Die vorgeschlagene Lösung verwendet es nicht. – Quentin

+0

hmm ... den Wert zu ignorieren wäre kein Problem für mich und könnte möglicherweise funktionieren. Aber das Hauptproblem besteht darin, dass der Asp.net-Server aufgrund der EventValidation eine Ausnahme auslöst, da der IE den gesamten Inhalt, also möglicherweise auch HTML-Tags (wenn Bilder enthalten sind), einen Hinweis darauf gibt, dass ein möglicherweise gefährlicher Inhalt vorliegt eingereicht. Natürlich könnte ich das deaktivieren, aber nur auf Seitenebene und das ist nicht wünschenswert. – Juri

Verwandte Themen