如何在OnInit()之前调用javascript函数 - ASP.NET

时间:2010-09-26 11:48:56

标签: c# javascript asp.net

我正在计算浏览器的屏幕大小并将其存储在隐藏字段中,并且我将根据大小在页面OnInit()上动态创建控件。但是在javascript函数触发计算屏幕大小之前,OnInit()会被触发。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您所引用的OnInit方法在我看来是ASP.NET页面加载周期中的OnInit方法。由于JavaScript是客户端(即,它在浏览器上运行)而C#/ ASP.NET是服务器端(即,它在服务器上运行,在IIS内),因此它将始终在任何javascript函数运行之前被触发。

您选择的方法需要两个周期:首先请求页面,您可以使用JavaScript方法设置隐藏字段。然后,此页面会自动发布回服务器,您可以计算商品的高度和宽度。

然而,这种方法会给你带来很多麻烦,无论是现在还是将来。通常最好只在客户端解决依赖于浏览器视口(您所说的大小)的布局问题。一个很好的开始是CSS。如果CSS无法解决问题,请使用jQuery(或alternatives)。

答案 1 :(得分:0)

尝试使用

Request.Browser.ScreenPixelsHeight
Request.Browser.ScreenPixelsWidth

而不是javascript来找出屏幕分辨率

答案 2 :(得分:0)

更简单的实现可能是将用户重定向到中间页面(显示“请稍候,加载...”类型的消息的虚拟页面)。在此页面上,您可以计算所有屏幕大小,然后将其传递到要调整大小的实际页面。

因此,您首先重定向到中间页面,计算屏幕大小,然后使用您在中间页面中计算的屏幕尺寸信息加载实际页面(您要调整大小)。