2010-08-10 37 views
4

注册如何订购脚本,我想提醒1顺序通过ScriptManager的注册脚本

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "a", "alert(a);", true); 
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "b", "var a = 1;", true); 

注册脚本,但这样做会导致一个错误说一个是不确定的。

我有不同的控件位于页面的不同部分注册脚本,其中一些需要先去,其他需要去最后。

有没有办法设置它将渲染的顺序?

回答

3

不,不可能定义调用RegisterClientScriptBlock方法的顺序。从documentationScriptManager.RegisterClientScriptBlock方法(重点煤矿):

脚本块不保证 是在顺序输出他们 注册。如果脚本 块的顺序是非常重要的,在单串, 使用 StringBuilder对象来收集 脚本在一起,然后将它们注册在一个单一的 客户端脚本块。

此外,您可能要定义一个不同的密钥(第二个参数; "a")为 RegisterStartupScriptBlock第二次调用,因为注册的脚本都是通过其键标识。如果您使用参数调用此方法, ScriptManager将不会注册第二个脚本,因为具有相同密钥的另一个脚本( "a")已被注册。

+0

'a'键是一个复制和粘贴错误,修复。谢谢。 – BrunoLM 2010-08-10 15:09:08

+0

@BrunoLM不客气 – 2010-08-10 15:17:44