我正在计算浏览器的屏幕大小并将其存储在隐藏字段中,并且我将根据大小在页面OnInit()上动态创建控件。但是在javascript函数触发计算屏幕大小之前,OnInit()会被触发。
有什么想法吗?
答案 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)
更简单的实现可能是将用户重定向到中间页面(显示“请稍候,加载...”类型的消息的虚拟页面)。在此页面上,您可以计算所有屏幕大小,然后将其传递到要调整大小的实际页面。
因此,您首先重定向到中间页面,计算屏幕大小,然后使用您在中间页面中计算的屏幕尺寸信息加载实际页面(您要调整大小)。