|
|
1
1
嗯,动态构建javascript并将其放入文本中? 一般来说,我在代码中嵌入javascript的唯一一次是当我制作一个自定义控件并希望它整齐地打包时(不用担心separate js文件),即使这样,我也使用RegisterClientScriptBlock而不是像这样的黑客。 为什么不在页面源代码(或包含文件)中有一个javascript函数,它接受两个参数(表单名和选定日期),然后动态构建函数调用而不是整个脚本? |
|
|
2
1
一种常见的方法是使用clientscriptmanager类: http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx 您可以调用registerstartupscript方法,该方法将脚本添加到页面末尾,在页面加载完成但在引发页面的OnLoad事件之前执行。 这个 RegisterClientScriptBlock 方法将脚本添加到页面顶部。您可以在这里添加常用的fnctions。
最后一个参数告诉脚本管理器包装脚本
另外,如果要从用户控件添加脚本,“ScriptKey”可确保同一脚本不会被多次添加。如果每个控件需要单独的脚本,则可以根据控件id动态生成该参数。 另一种向页面上的脚本文件添加链接的常用方法是 RegisterClientScriptInclude |
|
|
3
1
不要写出完整的函数,而是将函数嵌入页面或外部文件中,只动态地写出值。例如:
然后在你的代码后面或任何地方(抱歉,我不做VB):
|
|
|
4
0
但除此之外,我建议你试试 TagBuilder 班级。它说它是为MVC设计的,但是我不明白为什么不能在Web表单场景中使用它(您只需要导入MVC名称空间)-(尽管我在这方面可能是错的)。 |
|
|
5
0
在处理你的问题时有一些事情要考虑。 有几种方法,包括第页RegisterClient脚本,来处理一些繁琐的工作,方法是将JavaScript代码正确包装在适当的标记中,并将其放置在页面中适当的位置(内联vs.开始/结束),这样可以处理一些格式问题。 上面的代码示例是VB.Net,这对于处理大量文本来说不算粗糙,因为需要在每一行都附加&。C在这方面做得更好。好消息是,随着.NET4的发布,您不再需要担心所有的行连接。
|
|
|
6
0
|
|
|
7
0
从RockTheSixString发布的示例来看,如果您想“清理”代码的视觉方面,您还可以将其编写为:
不过,我会研究一下方法 Page.ClientScript
或者如果你正在使用 ScriptManager
|
|
|
8
0
把它放在一个单独的JavaScript文件中 . 更容易维护。
这样地:
然后使用 ClientScriptManager http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.aspx
您可以更进一步,而不是将脚本公开为公共属性,而是公开接受params的“getter”方法,这增加了另一层可维护性:
高温 |