Frage

ich eine aspx Seite mit vier Update haben. Im übrigen entspricht jeder Update zu einer Registerkarte JQuery UI. Was ich versuche, außerhalb des Updatedialog modal zu erreichen, ist ein JQuery UI, die von serverseitigen Code aufgerufen werden kann in jede der Update läuft. Also, innerhalb des ersten Update ist ein asp: Button, die einige serverseitigen Code ausgeführt wird. Wenn ein Fehler ocurrs, möchte ich in der Lage sein, etwas JavaScript zu injizieren, die die modalen Dialog aufrufen wird die Fehlermeldung angezeigt werden soll. Hier ist der Code verwende ich:

Dim script As String = "showPopupMessage('{0}');"
script = String.Format(script, errorMessage)
ScriptManager.RegisterStartupScript(Me.UpdatePanelBizInfo, Me.UpdatePanelBizInfo.GetType, Guid.NewGuid.ToString, script, True)

Die showPopupMessage Funktion auf der Seite sieht wie folgt aus:

function showPopupMessage(msg) {
    $('#<%=Me.LabelPopupMessage.ClientID %>').text(msg);
    $('#dialogPopupMessage').dialog('open');
}

Wenn der Code die JavaScript zu injizieren läuft, passiert nichts. Ich gehe davon aus, es hat etwas mit der Tatsache zu tun, dass die Fehler ocurrs im Code in einem Update läuft. Auf die resultierende HTML-Inspektion ist das JavaScript dort. Was mache ich falsch?

War es hilfreich?

Lösung

Sie können während einer asynchronen Postbacks auf der Seite laufen Javascript, aber es haben ausführen ordnungsgemäß müssen Sie die Scriptmanager Klasse verwenden, um es zu registrieren. Sobald Sie das tun, dass es als Startskript ausgelöst, wenn die Update-Panels des Rückrufs. Sie könnten das modale Fenster öffnen Aufruf Feuer als Startskript in diesen Fällen haben.

Hier ist eine ganz ähnliche Frage, wo ich einige benutzerdefinierte Code geschrieben (siehe akzeptierte Antwort). Es wird wahrscheinlich Ihr Problem lösen.

ASP.Net - Javascript innerhalb AJAX Update

Wenn per se Ihre modal offenen Aufruf openMyModal(someParams...); ist, können Sie die verknüpfte Code verwenden als:

string scriptText = "openMyModal(someParams...);";
this.RegisterClientStartupScript("openMyModal", scriptText);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top