在另一个脚本中的一个javascript中调用函数

时间:2013-10-09 05:50:02

标签: javascript asp.net

我正在开发一个ASPX页面..而我的脚本无效

请在下面找到更新的代码:

<script runat="server">
    protected void settxtSymbol(object sender, System.EventArgs e)
    {
        switch ((Timer1.Interval / 3) % 3)
        {
            case 0: txtSymbol.Value = "GOOG";
                break;
            case 1: txtSymbol.Value = "MICR";
                break;
            case 2: txtSymbol.Value = "YHOO";
                break;
        }
        ScriptManager.RegisterStartupScript(this ,this.GetType(), "script", 
            "javascript:{var txtSymbol = document.getElementById(\"txtSymbol\");
             window.location = \"default.aspx?s=\"" + txtSymbol.Value + ";}", true);
    }
</script>

我需要从settextSymbol函数调用SendRequest

4 个答案:

答案 0 :(得分:0)

为什么不将两者合并到一个<Script>中并放在</body>标记之前。

<script  type="text/javascript" language="JavaScript">
        /// <summary>
        /// This function will be called when user clicks the Get Quotes button.
        /// </summary>
        /// <returns>Always return false.</returns>

        function SendRequest() {
                var txtSymbol = document.getElementById("txtSymbol");
                // Refresh the page.
                window.location = "default.aspx?s=" + txtSymbol.value;
                return false;
        }

        // if its not a sever side event then you should consider using this
        protected void settextSymbol(object sender, System.EventArgs e)
        {
            switch ((Timer1.Interval / 3) % 3)
            {
                case 0: txtSymbol.Value = "GOOG";
                    break;
                case 1: txtSymbol.Value = "MICR";
                    break;
                case 2: txtSymbol.Value = "YHOO";
                    break;
            }
           Sendrequest();
        }

如果设置文本符号是服务器端代码,那么您应该考虑这样做

 protected void settextSymbol(object sender, System.EventArgs e)
        {
            switch ((Timer1.Interval / 3) % 3)
            {
                case 0: txtSymbol.Value = "GOOG";
                    break;
                case 1: txtSymbol.Value = "MICR";
                    break;
                case 2: txtSymbol.Value = "YHOO";
                    break;
            }
           ScriptManager.RegisterStartUpScript(setTextSymbol,GetType(),"myScript","javascript:Sendrequest();",true);
        }

答案 1 :(得分:0)

您可以创建单独的.js文件,根据需要将其命名为main.js。然后,您可以将该方法放在您创建的main.js文件中。只需将main.js file包含在您要在应用程序中调用的script tag的html文件中。

答案 2 :(得分:0)

settextSymbol看起来像服务器端代码。

您的服务器端代码将在JavaScript(客户端)功能存在时执行。

您的服务器端函数可以生成可以调用客户端脚本的HTML结果的JavaScript输出,但是在服务器端渲染完成之前,您无法从服务器调用JavaScript。

答案 3 :(得分:0)

您可以从SendRequest()

致电settextSymbol()

如果您遇到问题,请尝试从脚本代码中删除runat="server"