使用registerstartupscript

时间:2017-09-14 15:41:22

标签: javascript c# asp.net

我是js的新手,在尝试从我的代码隐藏中调用js函数时遇到了麻烦。

C#:

protected void GridView3_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            tbListOfCountries.Text = GridView3.SelectedRow.Cells[1].Text;
            Page.ClientScript.RegisterStartupScript(this.GetType(), "test", "test()", true);   
        }

JavaScript的:

 function test() {
       alert("test");     
    }

意外标识符错误:

//<![CDATA[
test()Sys.Application.add_init(function() {
    $create(Sys.Extended.UI.TabPanel, {"headerTab":$get("__tab_TabContainer1_TabPanel1"),"ownerID":"TabContainer1","wasLoadedOnce":true}, null, {"owner":"TabContainer1"}, $get("TabContainer1_TabPanel1"));
});

任何见解?

2 个答案:

答案 0 :(得分:1)

看起来您的脚本test()在语法上不正确。尝试替换为test();

答案 1 :(得分:1)

如果您在UpdatePanel中运行此操作,则可能会遇到一些问题(尤其是在PostBack上)。我觉得这个版本效果最好:

Control sender = MyUpdatePanel;
string javaScript = "alert('Hello');"; 
ScriptManager.RegisterStartupScript(sender, sender.GetType(), Guid.NewGuid().ToString(), javaScript, true);

您需要在页面上使用ScriptManager标记:

<asp:ScriptManager ID="MyScriptManager" runat="server" />
相关问题