2013-01-08 53 views
0

我知道有很多这样的问题。我尝试了很多,但仍然无法使其工作。从代码后面运行javascript

我:RadAjaxManagerRadAjaxPanelRadScriptBlock

<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()窗口。

+0

为什么会出现'1:'和'2:'在后面的功能代码行的前面? – Amberlamps

+0

只是为了列举我已经尝试过的东西。在代码 – makambi

+0

中没有“1:”和“2:”您应该从代码片段中删除该代码。这是非常具有误导性的。 – Amberlamps

回答

2

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

您写道:

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

但它必须是:

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

它只是在这里,我没有复制粘贴并输入错误。 代码中有一切正常: '函数MyFunction(){alert(“it works!”);}' – makambi

+0

这是某种讨厌的tekerik魔法。 我试过'RadAjaxManager1.ResponseScripts.Add(@“MyFunction();”);'之前的 但它没有工作。现在它起作用了。 谢谢你的帮助) – makambi

+0

@makambi:也许你错过了某个角色,或者我不知道的地方。现在很高兴它的作品! :) – Amberlamps