2

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

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

4

3 回答 3

3

你问的是不可能的。为什么首先需要知道服务器端的屏幕大小?无论您需要在服务器生成的 html 上提供什么,都可以通过适当的 CSS 规则或 Javascript 进行调整(如果您更喜欢该框架,则为 JQuery)

于 2012-04-18T14:11:01.457 回答
1

如果您将宽度/高度值设置为脚本中的隐藏字段,则可以在 postback 之后从代码隐藏中访问它们。标签未与表格一起发布,因此您不能使用它。

于 2012-04-18T14:14:08.267 回答
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>
于 2012-04-19T12:48:58.567 回答