Laden...

[JavaScript + IE] Click-Event erzeugt Postback in UpdatePanel

Erstellt von Freeman4gu vor 12 Jahren Letzter Beitrag vor 12 Jahren 967 Views
Freeman4gu Themenstarter:in
71 Beiträge seit 2007
vor 12 Jahren
[JavaScript + IE] Click-Event erzeugt Postback in UpdatePanel

Hallo zusammen,

der Titel beschreibt es leider nicht ganz genau. Ich versuche das hier mal etwas besser zu erläutern. Das Problem betrifft übrigens nur den Internet Explorer (egal in welcher Version).

Ich habe ein UpdatePanel in einer aspx Webseite. In diesem UpdatePanel habe ich einen nicht sichtbaren Button, der im Codebehind Daten lädt. Nun ist die komplette Seite relativ voll gepackt mit JavaScript (Maps API etc.) und ich führe außerhalb des UpdatePanels das Klick-Event des Buttons mit JavaScript aus.

Einzig und allein im Internet Explorer erfolgt ein komplettes Postback der Seite. Besteht hier irgendwie die Möglichkeit dies zu verhindern?

Der ScriptManager ist mit EnablePartialRendering aktiviert.

Hoffe da kann mir jemand helfen 😃

Besten Gruß

Android & WP7 development | Bikube - Projektmanagement und Wiki
http://zero-level-studios.com
http://bikube.de

3.170 Beiträge seit 2006
vor 12 Jahren

Hallo,

Einzig und allein im Internet Explorer erfolgt ein komplettes Postback der Seite.

wie stellst Du das denn fest?
Ich habe gerade versucht, das Problem minimalisiert nachzuvollziehen, ist mir aber nicht gelungen (im IE8), hier meine TestSeite:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestWebApplication._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<!-- Das onload wird nur einmal ausgeführt! -->
<body onload="alert('script')">
    <form id="form1" runat="server">
    <asp:ScriptManager ID="sm1" runat="server"/>
    <div>

    <asp:UpdatePanel ID="up1" runat="server">
      <ContentTemplate>
        <asp:Label id="lbl1" runat="server"/>
        <asp:Button runat="server" OnClick="b1_Click" ID="b1" style="display:none" />
      </ContentTemplate>
    </asp:UpdatePanel>

    <!-- löst per Script einen Click auf dem (versteckten) Button im UpdatePanel aus -->
    <input type="button" onclick="document.getElementById('b1').click()" value="check" />

    </div>
    </form>
</body>
</html>

und der zugehörige Handler b1_Click, der lediglich einen Text ins Label schreibt:

    protected void b1_Click(object sender, EventArgs e) 
    {
      lbl1.Text = "This is a label in an UpdatePanel";
    }

Dabei wird der alert im Onload des Body nur einmal ausgeführt -> es findet also kein kompletter PostBack statt, sondern wie gewünscht ein partieller.
Vielleicht versuchst Du das mit diesem Code mal bei Dir, dann sieht man, ob es an der geschilderten Struktur liegt.

Ich tippe aber eher auf das hier:

Nun ist die komplette Seite relativ voll gepackt mit JavaScript

Vielleicht spielt irgendeines dieser Scripte spielt am OnSubmit der Form rum, oder bringt Deinen IE irgendwie durcheinander. Dann kann ich zur genauen Ursache natürlich nichts sagen.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

Freeman4gu Themenstarter:in
71 Beiträge seit 2007
vor 12 Jahren

Hmm das ist ja merkwürdig, bei mir funktionierts so nicht ^^
Ich werde das auch nochma so ausprobieren.

Ich stelle den Postback fest, da sich die komplette Seite erneut lädt. Ich benutze die Maps API und die Position des Benutzers wird immer zurück gesetzt.

Android & WP7 development | Bikube - Projektmanagement und Wiki
http://zero-level-studios.com
http://bikube.de