2012-04-18 58 views
2

我需要在主頁面加載之前從JavaScript的值,然後希望在代碼中使用該值。我正在使用的代碼是:我需要一個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。

有什麼辦法來解決這個問題?

+6

這是不可能的。在C#代碼已經完成運行之後,客戶端上的JavaScript只能在服務器上運行。 – bfavaretto 2012-04-18 14:08:14

+0

在這種情況下,是否有任何解決方案此問題 – 2012-04-18 14:11:00

+0

@JohnSaunders:你是使用標籤的堅持者:) – 2012-04-18 14:13:32

回答

3

你在問什麼是不可能的。爲什麼您需要首先了解服務器端的屏幕大小?無論您需要在服務器生成的html上容納什麼,都可以通過適當的CSS規則或Javascript進行調整(如果您喜歡該框架,則使用JQuery)

1

如果您通過腳本將寬度/高度值設置爲隱藏字段,可以在回傳之後從代碼隱藏中訪問它們。標籤不會與表單一起發佈,因此您無法使用該表單。

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> 
相關問題