मैं एएसपीएक्स पेज पर पुनरावर्तक नियंत्रण के भीतर जावास्क्रिप्ट की कुछ पंक्तियों को आउटपुट कर रहा हूं। मैं स्क्रिप्ट टैग के अंदर अपने डेटा स्रोत से एक मान का उपयोग करना चाहता हूं।

एक बहुत ही बुनियादी उदाहरण हो सकता है:

<asp:Repeater ID="RepeaterBlah" runat="server">
 <ItemTemplate>
   Hello <%# DataBinder.Eval(Container.DataItem, "SomeName")%>
   <script>myfunction(<%# DataBinder.Eval(Container.DataItem, "SomeNumber")%>)</script>
 </ItemTemplate>
</asp:Repeater>

मुझे पता है कि अधिकांश लोग इस तरह से स्क्रिप्ट टैग नहीं दोहराएंगे, लेकिन मैं एक तृतीय-पक्ष से कोड के एक छोटे स्निपेट का उपयोग कर रहा हूं जिसे आप किसी पृष्ठ पर कहीं भी फ्लैश ऑब्जेक्ट बनाने के लिए रख सकते हैं। आप इसे एक नंबर पास करते हैं ताकि यह जान सके कि कौन सी छवि गैलरी प्रदर्शित करनी है। एक पृष्ठ पर कई का उपयोग करने में कोई समस्या नहीं है।

शुरू करने के लिए, यह ठीक काम करता है, हालांकि मैंने देखा कि विजुअल वेब डेवलपर में रंगों ने संकेत दिया कि यह वास्तव में <%# को <script> टैग के अंदर इस्तेमाल करना पसंद नहीं करता था। कोड-बैक में भी Intellisense थोड़ा पागल हो रहा था!

तो डेटासेट आइटम को स्क्रिप्ट टैग में पास करने का सही तरीका क्या है?

4
Magnus Smith 5 मई 2011, 14:52
टेक्स्ट बॉक्स के साथ अपना उदाहरण दिखाएं। शायद त्रुटि तब पेश की गई थी जब आपने इसे जोड़ा था।
 – 
Lou Franco
5 मई 2011, 14:56
मुझे नहीं पता, लेकिन यह समझ में आता है कि आप टेक्स्ट बॉक्स सर्वर नियंत्रण तक नहीं पहुंच सकते क्योंकि यह टेम्पलेट के अलावा वास्तव में मौजूद नहीं है। इसे प्राप्त करने के लिए, आपको शायद डाटाबेसिंग ईवेंट को संभालना होगा या टेम्पलेट के माध्यम से जाना होगा।
 – 
John Hoven
5 मई 2011, 15:00
क्षमा करें, टेक्स्टबॉक्स के उल्लेख को अनदेखा करें, जो अप्रासंगिक हो गया।
 – 
Magnus Smith
5 मई 2011, 15:01
वास्तव में समस्या क्या है? आपको क्या त्रुटि मिलती है?
 – 
Shadow Wizard Is Vaccinated V3
5 मई 2011, 15:02
Intellisense दुर्व्यवहार कर रहा है, इसलिए मुझे यह देखने में कठिनाई होती है कि वास्तविक समस्या क्या है। मुझे लगता है कि मैं जो पूछ रहा हूं वह है; डेटासेट से स्क्रिप्ट टैग में नंबर पास करने का सही तरीका क्या है?
 – 
Magnus Smith
5 मई 2011, 15:21

2 जवाब

सबसे बढ़िया उत्तर

यह शायद? (बिल्कुल याद नहीं कर सकते कि क्या + चिन्ह वास्तव में होने चाहिए और संकेत हालांकि)

<%# "<script>myfunction(" + DataBinder.Eval(Container.DataItem, "SomeNumber") + ")</script>" %>
2
Jeroen 5 मई 2011, 14:55
हाँ, मैंने यह कोशिश की थी। यह काम करता है, और Intellisense कम विलाप करता है। मैं मुख्य रूप से सोच रहा था कि ऐसा करने का 'उचित' तरीका क्या था!
 – 
Magnus Smith
6 मई 2011, 00:19

एक अन्य वैकल्पिक वाक्यविन्यास निम्नलिखित होगा:

<%# Eval("SomeNumber", "<script>myfunction({0});</script>") %>

यह वैकल्पिक पैरामीटर का उपयोग करता है जहां आप प्रारूप स्ट्रिंग की आपूर्ति कर सकते हैं।

2
patmortech 2 फरवरी 2012, 14:03