2010-04-01 81 views
0

我们一直在使用IScriptControl将JavaScript对象绑定到我们的UserControls和ServerControls,并且它工作正常。什么是Web.UI.Page的IScriptControl等价物?

问题是,ASP.NET似乎没有提供将JavaScript对象绑定到Page的方法。到目前为止,我们一直在将全局函数放在全局命名空间中,但是我正在对这种做法产生严重的过敏。

将我们的函数包装到一个javascript类中,并将JavaScript文件包含在页面中,但是如何实例化对象,如何从回调事件引用它以及如何将数据传递给它来自代码隐藏,我还没有弄清楚。或者说,我们到目前为止使用的方法(隐藏字段,发出的JavaScript字符串等)真的让我感到困惑。

任何人有更好的点子?

回答

0

JS文件和页面之间没有任何关联,除非您构建它。使用脚本控件,存储状态的常见做法是隐藏字段(ACT使用此方法)。唯一与服务器通信的其他方式是通过Web服务调用,表单发布数据或调用__doPostBack(但不是AJAX)。

您可以创建一些基本体系结构以将两者链接在一起。通过脚本控件,服务器呈现$ create语句以将属性和事件处理程序从服务器传递到客户端;发回服务器的数据存储在隐藏的变量中,并在客户端进行处理(大多数脚本库),所以脚本控件和ACT隐藏了很多这样的内容,如果你想要的话,你将不得不构建一些自动执行此操作。这可能有助于研究客户端 - 服务器之间的交互,让您了解如果要对其进行自定义,该怎么做。

有趣的是,我在Codeplex上为我的Nucleo项目(我的第三方库)想到了同样的事情,但我还没有想到它。

+0

JavaScript和页面之间没有任何关联,除非有人构建它。通过ScriptControl,MS构建了一个为UserControls和ServerControls提供通信的结构。对我来说,他们对页面也没有好处,这似乎很奇怪。 – 2010-04-02 12:31:38