C# 如何订购ScriptManager注册的脚本';s寄存器脚本
我想提醒C# 如何订购ScriptManager注册的脚本';s寄存器脚本,c#,asp.net,C#,Asp.net,我想提醒1按此顺序注册脚本 ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "a", "alert(a);", true); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "b", "var a = 1;", true); 但这样做会导致一个错误,即a未定义 我在注册脚本的页面的不同部分有不同的控件,其中一些需要先执行,其他需要最后执行 是否
1
按此顺序注册脚本
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "a", "alert(a);", true);
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "b", "var a = 1;", true);
但这样做会导致一个错误,即a未定义
我在注册脚本的页面的不同部分有不同的控件,其中一些需要先执行,其他需要最后执行
是否有方法设置它将呈现的顺序?否,无法定义调用
RegisterClientScriptBlock
方法的顺序。从ScriptManager.RegisterClientScriptBlock方法(emphasis mine)的中:
不保证脚本块
按顺序输出
已注册。如果脚本的顺序
块很重要,使用
StringBuilder对象以收集
将脚本合并在一个字符串中,
然后将它们全部注册到一个
客户端脚本块
此外,您可能希望为第二次调用
RegisterStartupScript Block
,定义不同的键(第二个参数;“a”
),因为注册的脚本由其键唯一标识。如果使用参数调用此方法,ScriptManager
将不会注册第二个脚本,因为已注册另一个具有相同键(“a”
)的脚本。已修复a
键是复制粘贴错误。谢谢