2010-02-17 19 views
5

मेरे पास ग्रिड व्यू नियंत्रण के टेम्पलेट कॉलम में ड्रॉपडाउनलिस्ट है। GridView वस्तुओं की एक सूची के लिए बाध्य है। प्रत्येक ऑब्जेक्ट में टाइप int की एक संपत्ति होती है जो DropDownLists ListItems में से किसी एक मान के अनुरूप होती है। मैं डेटाबैंड ईवेंट को ड्रॉप डाउन में जोड़कर चुने गए आइटम को प्रोग्रामेटिक रूप से सेट कर सकता हूं, लेकिन मुझे आश्चर्य है कि क्या एएसपीएक्स मार्कअप में कोड ब्लॉक का उपयोग करके चयनित आइटम सेट करने का कोई तरीका है।मार्कअप में DropDownList चयनित आइटम को कैसे सेट करें?

उत्तर

9

इस डिजाइन में सतर्क रहें आप मार्कअप में चुन सकते हैं। इस तरह से ग्रिड ड्रॉप डाउन बनाने के लिए इसका मतलब है कि प्रत्येक विकल्प के लिए ड्रॉप डाउन में, आप प्रत्येक पंक्ति के लिए दोहराने जा रहे हैं। यदि आपके पास कुछ पंक्तियों या एकाधिक ड्रॉप डाउन कॉलम हैं, तो यह एमबी से अधिक पृष्ठ आकारों में बहुत तेज़ी से जोड़ा जा सकता है, जो प्रदर्शन को कम कर देगा।

<asp:DropDown id="dropDown1" SelectedValue='<%# Eval("Key") %>' runat="server"/> 

संदर्भ बाध्यकारी टैग भी आप के रूप में पृष्ठ/उपयोगकर्ता नियंत्रण पर सार्वजनिक/संरक्षित कार्यों कॉल:

कहा जा रहा है, तो आप इस मार्क अप में स्क्रिप्ट टैग बाध्यकारी संदर्भ का उपयोग करके ऐसा कर सकते हैं :

<asp:DropDown id="dropDown1" SelectedValue='<%# myFunction((int) Eval("Key")) %>' runat="server"/> 

public string myFunction(int key){ 
    return key.ToString(); 
} 

प्रत्येक पंक्ति के लिए एक ही दोहराए एचटीएमएल उत्पादन के लिए एक विकल्प के रूप में, आप उन ड्रॉप-डाउन का autocompleters कर सकते हैं या नीचे है कि केवल HTML एक बार renders एक छिपे हुए ड्रॉप बनाने और उसके बाद हो सकता है का उपयोग करता है JQuery या जावास्क्रिप्ट को भरने के लिए आपके सभी ग्रिड ड्रॉप डाउन क्लाइंट पक्ष।

0

आप के माध्यम से मार्कअप में सेट कर सकते हैं:

<ItemTemplate> 
<asp:DropDown .. SelectedValue='<%# Eval("Key") %>' /> 
</ItemTemplate> 

आप इसे कैसे बाँध, आप कोई डेटा स्रोत नियंत्रण का उपयोग कर रहे पर निर्भर करता है? जो कुछ भी मामला है, मैंने देखा है कि यह दृष्टिकोण आइटम को बाध्य होने से पहले मूल्य निर्धारित करने का प्रयास कर सकता है और यह अपवाद फेंक सकता है। यकीन नहीं है, क्या यह एक बार हुआ था, सोचा था कि यह हो सकता है, लेकिन मुझे इसे और अधिक गहराई से देखना चाहिए था।

एचटीएच।

0

आप भी GridView की RowDataBound घटना का उपयोग कर सकते या के रूप में @Brian

द्वारा वर्णित
संबंधित मुद्दे