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

C# 如何在OnInit()之前调用javascript函数-ASP.NET,c#,javascript,asp.net,C#,Javascript,Asp.net,我正在计算浏览器的屏幕大小并将其存储在一个隐藏字段中,我正在根据大小动态地在页面OnInit()上创建控件。但是OnInit()是在javascript函数启动以计算屏幕大小之前启动的 有什么想法吗?尝试使用 Request.Browser.ScreenPixelsHeight Request.Browser.ScreenPixelsWidth 在我看来,您提到的OnInit方法似乎是ASP.NET页面加载周期中的方法,而不是javascript来查找屏幕分辨率。由于JavaScript是客户

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

有什么想法吗?

尝试使用

Request.Browser.ScreenPixelsHeight
Request.Browser.ScreenPixelsWidth

在我看来,您提到的
OnInit
方法似乎是ASP.NET页面加载周期中的方法,而不是javascript来查找屏幕分辨率。由于JavaScript是客户端(即,它在浏览器上运行),而C#/ASP.NET是服务器端(即,它在服务器上运行,在IIS内部运行),因此它总是在运行任何JavaScript函数之前被触发

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


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

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


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

但我认为它不会给出视口的宽度和高度。我想从高度中排除状态栏和浏览器顶部栏的高度。它会工作吗?唯一要做的另一件事是注册一个脚本来对控件进行大小校正。由于控件是动态创建的,我无法断言在页面交付到浏览器后,哪些控件的大小必须根据屏幕大小进行调整。我希望动态控件适合浏览器的宽度和高度。@NLV:这就是为什么我建议您需要执行空页重定向以评估客户端的屏幕高度等。但即使如此,当有人调整浏览器窗口的大小时会发生什么?在您的情况下使用CSS,以适应浏览器的宽度和高度(即:
width:100%
或其他百分比)。或者我误解了你的问题,使你无法使用CSS?听起来与我的答案类似;-)。虽然这是一个解决方案,但它是一个笨拙的设计,特别是对于理想情况下应该正确使用CSS的东西。