从后台代码运行javascript

Run javascript from code behind

本文关键字:javascript 运行 代码 后台      更新时间:2023-09-26

我知道有很多这样的问题。我试了很多,但仍然不能使它工作。

我有: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>

Master Page我有:

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

我想在combo box selected index change上运行MyFunction()。

我已经试过了:

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

我也试着直接发出警报:

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

谁能解释一下我做错了什么?

没有错误。只是javascript代码不执行。我没有alert()窗口在我的屏幕上。

你应该得到一个语法错误在你的javascript!你的声明中有一个错别字。

你写的

:

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

但必须是:

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