2013-01-10 45 views
2

我想從服務器端訪問用戶屏幕分辨率。 爲此,我有asp hidden控制:使用javascript填充asp隱藏字段的值

<asp:HiddenField runat="server" ID="hdnScreenResolution" /> 

哪些實際渲染頁面:

<input type="hidden" name="ctl00$MainContent$hdnScreenResolution" id="MainContent_hdnScreenResolution" /> 

我使用JavaScript函數在它插入值:

$(document).ready(function() { 
    var width = screen.width; 
    var height = screen.height; 

    var hiddenScreenResolution = document.getElementById('<%= hdnScreenResolution.ClientID 
    %>'); 
    hiddenScreenResolution.value = "asass"; 
}); 

而且它頁源代碼:

 $(document).ready(function() { 
      var width = screen.width; 
      var height = screen.height; 

      var hiddenScreenResolution = document.getElementById('MainContent_hdnScreenResolution'); 
      hiddenScreenResolution.value = "asass"; 
     }); 

在服務器端我上Page_Load()檢查隱藏的價值:

protected void Page_Load(object sender, EventArgs e) 
{ 
    var hiddenValue = hdnScreenResolution.Value; 
} 

但值顯示爲空字符串。 使用jquery沒有幫助。 。

直接插入: 的document.getElementById( '<%= hdnScreenResolution.ClientID %>')值= 「asdasd」; 沒有幫助。

有什麼問題可以嗎?

P.S.我想我在document.ready上捕捉屏幕分辨率爲時已晚。 JavaScript在頁面卸載後觸發。所以在最初的請求上沒有改變。

期待一個答案。

回答

1

服務器端Page_Load在html發送到客戶端並執行jQuery之前調用,因此您在使用javascript在客戶端上分配之前正在訪問值,並且應該爲空。

您需要從客戶端發送值的服務器,你可以使用jQuery阿賈克斯做回傳用於獲取服務器上的屏幕座標值。

要查看發生了什麼事只需添加ASP:按鈕和訪問隱藏字段值在它的服務器端事件。

+0

我得到了它)謝謝 – makambi

+0

歡迎您。 – Adil

相關問題