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
键是复制粘贴错误。谢谢