2011-06-07 17 views
9

के बाद खो गया जेएस में असाइन किया गया छुपा मूल्य यहां मेरी समस्या है। मेरे पास एक छिपी हुई फ़ील्ड है जिसका मूल्य मैं जावास्क्रिप्ट विधि के माध्यम से बदलता हूं। समस्या पोस्टबैक के बाद है, मूल्य खो गया है।पोस्टबैक

मैं पोस्टबैक के बाद मूल्य कैसे बना सकता हूं?

धन्यवाद!

फ़ाइल .aspx

<asp:HiddenField ID="HiddenField1" runat="server" /> 
<asp:Button ID="BtnGuardar" runat="server" OnClick="BtnGuardar_Click" OnClientClick="return GridUpdateInfoOK()" /> 

.js फ़ाइल

document.getElementById('<%= HiddenField1.ClientID %>').value = 'TEST'; 

.aspx.cs फ़ाइल

protected void BtnGuardar_Click(object sender, EventArgs e) 
{ 
    String test = HiddenField1.Value; 
} 
+0

आप के रूप में यह ब्राउज़र को भेजा जाता है, एचटीएमएल हमें दिखा सकते हैं? मुझे नहीं पता कि एएसपीनेट सामान एचटीएमएल में कैसे अनुवाद करता है और आखिरकार, जावास्क्रिप्ट के साथ काम करना है। –

+2

क्या आप प्रमाणित हैं कि जावास्क्रिप्ट विधि आपके द्वारा शामिल की गई रेखा को बुलाया जा रहा है? क्या आपके पास छुपे हुए फ़ील्ड पर TrueViewState सेट सही है? – Chad

+1

यदि वह जेएस कोड वास्तव में ".js फ़ाइल" में है जैसा कि आप कहते हैं, तो यह काम नहीं करेगा। स्क्रिप्टलेट (सी # कोड से बचने) को केवल एएसपीएक्स/एसीएक्स फाइलों में पार्स किया जाता है। –

उत्तर

12

आपको सर्वर पर छिपी हुई इनपुट चलाने की आवश्यकता नहीं है। आप कर सकते हैं:

<input type="hidden" id="HiddenInput" name="HiddenInput" value="" /> 

फिर जब आप वापस पोस्ट आप ऐसा कर सकते हैं:

protected void BtnGuardar_Click(object sender, EventArgs e) 
{ 
    String test = Request.Form["HiddenInput"]; 
} 
+1

धन्यवाद मार्टो, यह काम किया! – Gonzalo

+0

Request.Form ["HiddenInput"] OnInit विधि में काम नहीं करता है? –

+0

धन्यवाद मेरे जीवन को बचाया। – alternatefaraz

5

कि उस तरह काम नहीं करता। मान पृष्ठ लोड के बाद मौजूद नहीं है, इसलिए पोस्टबैक नहीं किया जाएगा। शैली = "प्रदर्शन: कोई नहीं" के साथ टेक्स्टबॉक्स का उपयोग करने का प्रयास करें।

+0

क्या यह कोई फर्क पड़ता है यदि यह टेक्स्टबॉक्स या छुपा हुआ फ़ील्ड है? मैंने इसे अपनी एएसपीएक्स फ़ाइल में जोड़ने का प्रयास किया: , मेरी जेएस फ़ाइल में एक मान असाइन करना, लेकिन कोई भाग्य नहीं था। – Gonzalo

+0

मुझे खेद है, यह काम किया! लेकिन मुझे अभी भी समझ में नहीं आता कि यह टेक्स्टबॉक्स का उपयोग करते समय क्यों काम करता है और यह एक छिपे हुए क्षेत्र का उपयोग नहीं करता .. दोनों इनपुट तत्वों में अनुवाद करते हैं .. – Gonzalo

+1

हां, ठीक है, टेक्स्टबॉक्स उपयोगकर्ता इनपुट के लिए हैं, इसलिए वे पेज लोड पर खाली हैं लेकिन नए मूल्य के साथ पोस्ट कर रहे हैं। छुपा फ़ील्ड छुपाए गए हैं क्योंकि आप नहीं चाहते कि ग्राहक अपना मूल्य बदल सके, इसलिए यह संरक्षित है। – noinstance

0

<asp:HiddenField ID="HiddenField1" runat="server" EnableViewState="true"/> 

का उपयोग करें तो हम पोस्टबैक के बाद मूल्य मिल जाएगा।

HiddenField के सभी गुण के रूप में bellow हैं:

<asp:HiddenField 
    EnableTheming="True|False" 
    EnableViewState="True|False" 
    ID="string" 
    OnDataBinding="DataBinding event handler" 
    OnDisposed="Disposed event handler" 
    OnInit="Init event handler" 
    OnLoad="Load event handler" 
    OnPreRender="PreRender event handler" 
    OnUnload="Unload event handler" 
    OnValueChanged="ValueChanged event handler" 
    runat="server" 
    SkinID="string" 
    Value="string" 
    Visible="True|False" 
/>