2012-03-22 19 views
6

Possible Duplicate:
Why <%= %> works in one situation but not in anotherASP.NET - एक सी # चर पासिंग HTML में

मैं चर सी # एचटीएमएल में घोषित पारित करने के लिए कोशिश कर रहा हूँ। वेरिएबल्स को कोड-बैक में सार्वजनिक के रूप में घोषित किया गया है।

यह मैं उपयोग कर रहा हूँ HTML कोड है:

<asp:TextBox ID="TextBoxChildID" Text='<%= Child_ID %>' runat="server" Enabled="false"></asp:TextBox> 

समस्या है वह पृष्ठ लोड पाठ '<% = Child_ID%>' वैरिएबल के मान के बजाय पाठ बॉक्स में प्रकट होता है जब ।

कृपया क्या गलत है?

+0

** http: //msdn.microsoft.com/en-us/library/6dwsdcf5%28VS.71%29.aspx** –

उत्तर

7

यह सब मानते हैं कि डेटाबाउंड नियंत्रण की बजाय यह आपके पृष्ठ पर कहीं भी एक टेक्स्टबॉक्स है। यदि टेक्स्टबॉक्स दोहराने वाले आइटम टेम्पलेट का हिस्सा है, और Child_ID कुछ ऐसा है जो डेटा पंक्ति से भिन्न होता है, तो यह सब गलत है।

इस बजाय कार्य करें:

<asp:TextBox ID="TextBoxChildID" runat="server" Enabled="false"><%= Child_ID %></asp:TextBox> 

संक्षेप में, आप एक ही गलती कर रहे हैं जब मैं इस प्रश्न पूछा मैं कर रहा था: Why <%= %> works in one situation but not in another


वैकल्पिक रूप से, में कोड-पीछे, आप में अपने कोड-पीछे

<asp:TextBox ID="TextBoxChildID" runat="server" Enabled="false"></asp:TextBox> 

और इस: अपने ASPX में यह हो सकता है

TextBoxChildID.Text = Child_ID; 
+0

मैंने आपके सुझाव की कोशिश की। हालांकि, अब टेक्स्टबॉक्स में कुछ भी दिखाई नहीं दे रहा है: s – Matthew

+0

क्षमा करें, मुझे यह गलत था। <%# %> या तो इस संदर्भ में काम नहीं करेगा। यह अभी होना चाहिए। यदि हां, तो मेरे प्रश्न पर उत्तर दें - उस लड़के ने इसे समझाने का एक अच्छा काम किया है और वह अंक का हकदार है। और उस उत्तर के नोट्स को भी देखें - समान अभिव्यक्तियों के समूह के लिए एक लिंक है जो उपयोगी हैं। – David

+0

यह मुझे त्रुटि दे रहा है: कोड ब्लॉक इस संदर्भ में समर्थित नहीं हैं – Matthew

1

चर पहले सार्वजनिक होना चाहिए। और:

'<%# Child_ID %>' 
+0

मुझे पूरा यकीन है कि इसे केवल संरक्षित किया जाना है। –

+0

अच्छी प्रैक्टिस के मामले में सही मूल्य पारित करना होगा और HTML के लिए एक चर नहीं होगा।चूंकि प्रत्यक्ष विरासत संरक्षित चर भी काम करता है। –

1
<script type="text/javascript"> 
    function abc() 
    { 
     var id = document.getElementById('txtTextBox'); 
     id.value=<%=MyProperty %>; 
     alert(id.value); 
    } 
</script> 

protected int MyProperty 
{ 
    get 
    { 
     return 1; 
    } 
} 

Page.RegisterStartupScript(Guid.NewGuid().ToString(), 
"<script language = 'javascript'>abc();</script>"); 
0

HTML में:

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

codebehind में:

protected void Page_Load(object sender, EventArgs e) 
{ 
    HiddenField1.Value = Child_ID; 
} 

यह सबसे अच्छा तरीका होगा, यह मूल्य के साथ एक छिपी हुई इनपुट बनाता है।

संबंधित मुद्दे