2008-09-07 12 views
12

मैं कोड-पीछे से ListView के LayoutTemplate में उपयोगकर्ता नियंत्रण की एक संपत्ति कैसे सेट करूं?listview के layouttemplate में नियंत्रणों का उपयोग कैसे करें?

<asp:ListView ...> 
<LayoutTemplate> 
<myprefix:MyControl id="myControl" ... /> 
</LayoutTemplate> 
... 
</asp:ListView> 

मैं ऐसा करना चाहते हैं:

myControl.SomeProperty = somevalue; 

कृपया ध्यान दें कि मेरे नियंत्रण ItemTemplate में नहीं है, यह LayoutTemplate में है, इसलिए यह सभी वस्तुओं के लिए मौजूद नहीं है, यह केवल एक बार ही मौजूद है। इसलिए मुझे इसे एक बार एक्सेस करने में सक्षम होना चाहिए, न कि प्रत्येक डेटा बाउंड आइटम के लिए।

उत्तर

12

एक नियंत्रण है कि LayoutTemplate अंदर, बस ListView नियंत्रण पर FindControl विधि का उपयोग का एक गुण सेट करने के लिए।

var control = (MyControl)myListView.FindControl("myControlId"); 
1

प्रत्येक ListViewItem पर FindControl विधि का उपयोग करें।

var control = (MyControl)Item.FindControl("yourControlId"); 
1

यह इस स्टैक ओवरफ़्लो प्रश्न का उत्तर दिया गया है
Access a control inside a the LayoutTemplate of a ListView

tanathos द्वारा स्वीकार कर लिया जवाब पर टिप्पणी देखें।

मुझे पता है कि यह एक साल पहले पूछा गया था, लेकिन यह खोज शब्द के लिए मुझे पहले परिणाम में से एक है, इसलिए मैं किसी और के लिए जवाब छोड़ना चाहता था।

0

लेआउट बनाया गया है, और एक लेआउटक्रेटेड घटना को आग लगती है जो कहती है कि लेआउट सिस्टम में बनाया गया है।

फिर, आप उसदृश्य के संदर्भ प्राप्त करने के लिए listview.FindControl का उपयोग कर सकते हैं।

18
var control = (MyControl)myListView.FindControl("myControlId"); 

यह काम करते हैं लेकिन आप डेटा बाँध के बाद यह करना या LayoutTemplate इस प्रकार बनाया गया है नहीं होगा एक त्रुटि फेंक यकीन है कि कर देगा।

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

  • कोई संबंधित समस्या नहीं^_^