2012-06-20 63 views
2

我已經嘗試了「每一個」的方式發送從aspx頁上的JS腳本screen.width vlaue到代碼後面的c#,而我可以看到正確分配的screen.width它永遠不會被分配給我的隱藏字段值。asp.net從JS/jQuery傳遞值到後面的代碼#

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

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

    <script type="text/javascript" language="javascript"> 
     $(function(){ 
     $('#hiddenfield').val(screen.width); 
    }); 
    </script> 

other content 

</asp:Content> 

和後面的代碼:

protected void btnChartGo_Click(object sender, EventArgs e) 
{ 
    string s = hiddenfield.Value; 
} 

不管我怎麼努力S始終「」

蹊蹺的上面,每個人似乎都做這樣的,它的工作原理?

回答

0

這應該得到正確的選擇:

$('#<%= hiddenfield.ClientID %>').val(screen.width); 
+0

爲什麼使用ClientID? – Developer

+0

'ID'是ASP.net的控件ID,所以'lblMyLabel'例如'ClientID'是發送給瀏覽器的ID,這與根級別的'ID'相同,但是主頁和webcontrols,它會以它們的ID爲前綴,例如'namespace_MasterPage_webControlID_controlID'。 – RemarkLima

2

呈現的隱藏字段的ID不是「隱藏字段」 - 它將像ctl00_bodycontent_hiddenfield一樣。

嘗試使用

$('[id$="hiddenfield"]') 

作爲選擇器來代替。

+0

剛剛做過。仍然是空的。 – user1468537

+0

道歉;使用錯誤的選擇器答案更新爲正確 – Dave

0

檢查頁面查看源代碼,並找出元素的正確的ID,然後在其上使用jQuery選擇,然後以請求的頁面加載檢查。形式收集,以檢查是否隱變量在POST請求來不來

1
<asp:HiddenField ID="hiddenfield" runat="server" ClientIDMode="Static"> 
</asp:HiddenField > 

讓你的隱藏字段確定客戶端ID模式是靜態的,如果你正在使用ASP.NET 4或使用

$('#<%= hiddenfield.ClientID %>').val(screen.width); 
相關問題