我在主页加载之前需要来自javascript的值,然后想在代码中使用该值

时间:2012-04-18 14:05:51

标签: c# javascript asp.net html

我在主页加载之前需要来自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。

有没有办法解决这个问题?

3 个答案:

答案 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>