我在主页加载之前需要来自javascript的值,然后想在代码中使用该值。我为此目的使用的代码是:
我已经制作了一个test.aspx页面。代码如下: -
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title> <script type="text/javascript" language="javascript">
function GetScreenHeightAndWidth()
{
var width = screen.width;
var height = screen.height;
var object = 'Label1';
document.getElementById(object ).innerHTML=height ;
//alert(height);
'<%Session["Screensize"] = "' + height +'"; %>' ;
}
</script>
</head>
<body onload="GetScreenHeightAndWidth();" >
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="test"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
test.aspx.cs页面的代码如下: -
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Windows.Forms;
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session["Screensize"] = Label1.Text;
TextBox1.Text=Session["Screensize"].ToString();
}
}
结果如下: -
768测试
虽然我需要的结果是768和768。
有没有办法解决这个问题?
答案 0 :(得分:3)
你要问的是不可能的。为什么你首先要知道服务器端的屏幕尺寸?无论您需要在服务器生成的html上容纳什么,都可以通过适当的CSS规则或Javascript(如果您更喜欢该框架的JQuery)进行调整
答案 1 :(得分:1)
如果您将宽度/高度值设置为脚本中的隐藏字段,则可以在回发后从代码隐藏访问它们。标签不会随表单一起发布,因此您无法使用它。
答案 2 :(得分:0)
首先感谢各位回答我的问题。经过多次搜索,我找到了我想要的东西。为此,我必须再使用一页,并在原始代码中添加此代码:
if (!IsPostBack)
{
if (Session["ScreenResolution"] == null)
{
Response.Redirect("detectscreen.aspx");
}
else
{
Session["Screensize"] = Session["ScreenResolution"].ToString();
}
TextBox1.Text = Session["Screensize"].ToString();
}
新页面的代码是:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["action"] != null) {
Session["ScreenResolution"] = Request.QueryString["res"].ToString();
Response.Redirect("Catalogue.aspx");
}
}
,新页面中的脚本将如下所示:
<script language="javascript" type="text/javascript">
res = "&res="+screen.height
top.location.href="detectscreen.aspx?action=set"+res
</script>