2010-12-13 16 views
6

मेरे पास वर्तमान में एक दोहराव नियंत्रण है और itemtemplate के अंदर मेरे पास उपयोगकर्ता नियंत्रण है। यह usercontrol सही ढंग से प्रस्तुत करता है, लेकिन मैं पुनरावर्तक नियंत्रण में किसी संपत्ति को डेटाटाइम असाइन करने का प्रयास कर रहा हूं।एक एएसपी.NET पुनरावर्तक नियंत्रण में उपयोगकर्ता नियंत्रण में गतिशील रूप से एक संपत्ति असाइन करना

<asp:Repeater ID="Repeater1" DataSourceID="EntityDataSource" runat="server"> 
    <ItemTemplate> 
    <uc1:Request ID="Request1" runat="server" RequestId='<%# Eval("RequestId") %>' /> 
</ItemTemplate> 

RequestId सिर्फ कोई Int32 है। यह सिर्फ इसे असाइन नहीं करता है।

मैं केवल आइटम टेम्पलेट में उपयोगकर्ता नियंत्रण के बाहर eval डाल सकता हूं और यह सही आईडी सही ढंग से आउटपुट करता है।

यदि मैं पूरा eval हटा देता हूं और बस एक संख्या टाइप करता हूं तो यह ठीक काम करता है।

किसी भी मदद की सराहना की।

[अद्यतन]: समस्या

मैं एक EntityDataSource उपयोग कर रहा था हल और यह स्वचालित रूप से पुनरावर्तक से आबद्ध। यह किसी भी कोडबेंड के बिना स्क्रीन पर डेटाबेस से सभी जानकारी मुद्रित। लेकिन जब मैंने रिपेटर 1 के पीछे कोड डाला। डाटाबाइंड(); फिर यह काम करना शुरू कर दिया।

मुझे नहीं पता क्यों, लेकिन हे हल हो गया है। अब यह सफलतापूर्वक मूल्य को पास करता है। मुझे कल्पना है कि पेज लाइफसाइकिल के साथ इसका कुछ संबंध है।

+0

कुछ भी अभी भी काम नहीं कर रहा है। जब मैं इवल का उपयोग करता हूं तो RequestId बस सेट नहीं होता है। जब मैं <% # Eval ("RequestId")%> उपयोगकर्ता नियंत्रण से ऊपर करता हूं तो बस खुली जगह में यह स्क्रीन पर पूरी तरह से प्रिंट करता है। अगर मैं संख्या को कोड कोड करता हूं उदा। RequestId = "2" यह ठीक काम करता है। लेकिन उपर्युक्त के रूप में यह काम नहीं करता है। –

+0

आपके पास अपने कोड में एक टाइपो है। % = के बाद सही 'बंद नहीं होना चाहिए? – Skorpioh

उत्तर

4

तुम सिर्फ int की पुनरावर्तक संग्रह के साथ बाँध, तो आप इस का उपयोग की जरूरत है:

<uc1:Request ID="Request1" runat="server" RequestId='<%# Container.DataItem %>' /> 

और भूल नहीं है() पुनरावर्तक के लिए या पृष्ठ, जिस पर एक पुनरावर्तक नियंत्रण नहीं है के लिए DataBind कॉल करने के लिए।

2

क्या आप अंत में ' खो रहे हैं?

बदलाव के बाद:

RequestId='<%# Eval("RequestId") %> /> 

RequestId='<%# Eval("RequestId") %>' /> 
+0

मेरे कोड को कॉपी करने में बस एक टाइपो, इसमें दोनों उद्धरण हैं –

0

को आप पुनरावर्तक नियंत्रण के ItemDataBound घटना का उपयोग कर, ताकि आप नियंत्रण के लिए गतिशील संपत्ति सेट कर सकते हैं द्वारा इसे लागू कर सकते हैं।

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