Montag, Juni 1, 2020

Führen Sie javascript-code hinter

Ich weiß, dass es eine Menge von Frage, wie dieser. Habe viel versucht, aber kann immer noch nicht machen es zu arbeiten.

Habe ich: RadAjaxManager, RadAjaxPanel, RadScriptBlock

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" 
         DefaultLoadingPanelID="RadAjaxLoadingPanel1">
         <ClientEvents OnRequestStart="onRequestStart" />
             <AjaxSettings>
                  <telerik:AjaxSetting AjaxControlID="AjaxPanel">
                      <UpdatedControls>
                          <telerik:AjaxUpdatedControl ControlID="AjaxPanel"/>
                       </UpdatedControls>
                   </telerik:AjaxSetting>
              </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxPanel runat="server" ID="AjaxPanel" Wrap="True" CssClass="PanelAjax">
         <telerik:RadComboBox runat="server" ID="cbLanguage" Width="115px" 
             AutoPostBack="True"Sort="Ascending" EmptyMessage="Choose language" 
             DataValueField="id" DataTextField="languageName"
             OnSelectedIndexChanged="cbLanguage_SelectedIndexChanged">
          </telerik:RadComboBox>
    </telerik:RadAjaxPanel>
    <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
      <script>
          function MyFunction(){
                  alert('asdasd');
          }
      </script>
    </telerik:RadScriptBlock>
</asp:Content>

In Master Page ich habe:

<telerik:RadScriptManager ID="ScriptManager1" runat="server">
</telerik:RadScriptManager>

Möchte ich laufen Meinefunktion() auf combo box selected index change.

Habe ich bereits versucht:

protected void cbLanguage_SelectedIndexChanged(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "myKey", "MyFunction();");
    ScriptManager.RegisterStartupScript(Page, this.GetType(), "testOne", "MyFunction();", true);
}

Auch habe ich versucht, nur um Feuer-Alarm direkt:

ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "alert('asd');", false);

RadAjaxManager1.ResponseScripts.Add(@"radalert('Welcome to RadWindow <b>Prometheus</b>!', 330, 210);");

string treeScript = "<script language='javascript'>alert('asd');</script>";
                Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", treeScript);

RadAjaxManager1.ResponseScripts.Add(@"alert('Welcome');");

Könnte jemand mir erklären, was ich falsch mache?

Gibt es keine Fehler.
Nur javascript-code wird nicht ausgeführt. Ich habe alert() Fenster auf meinem Bildschirm.

  • Warum ist es 1: und 2: vor die Zeilen in der code-behind-Funktion?
  • nur aufzählen was ich schon versucht. es gibt keine ‚1:‘ und ‚2:‘ in den code
  • Sie sollten zu entfernen, die von Ihrem code-snippet. Es ist sehr irreführend.
  • Btw, du hast nicht erwähnt, was funktioniert eigentlich nicht mit dem Skript. Sie haben einen Fehler beim kompilieren, zur Laufzeit? Sie erhalten einen JavaScript-Fehler? Hat Ihr JavaScript angezeigt, in der der source code überhaupt? etc. etc.
  • Keine Fehler, nur alert() Popup nicht angezeigt
  • Aber der JavaScript scheint in Ihrem code?
  • Gute Frage, eigentlich ist es nicht. Zum Beispiel ScriptManager.RegisterStartupScript(this, GetType(), "alert", "alert('asd');", false); Nach cbLanguage_SelectedIndexChanged ausgeführt wird, gibt es keine alert('asd'); im html-Quelltext der Seite

InformationsquelleAutor makambi | 2013-01-08

1 Kommentar

  1. 2

    Sollte man sich ein syntax-Fehler im javascript! Sie haben einen Tippfehler in Ihrer Erklärung.

    Sie schrieb:

      <script>
          fuction MyFunction(){
                  alert('asdasd');
          }
      </script>

    Aber es muss sein:

      <script>
          function MyFunction(){
                  alert('asdasd');
          }
      </script>
    • Es ist nur hier, ich habe nicht copy-paste und tippte mit Fehler. es ist alles ok in dem code: function MyFunction() { alert("it works!");}
    • Es ist eine Art von lästigen tekerik Magie. Ich habe versucht ‚RadAjaxManager1.ResponseScripts.Add(@“MyFunction();“);‘ zuvor, aber es hat nicht funktioniert. Und jetzt funktioniert es. Danke für deine Hilfe)
    • Vielleicht verpasst du einen Charakter, wo einige oder ich weiß nicht. Froh, dass es jetzt funktioniert! 🙂

Kostenlose Online-Tests