2010-11-18 11 views
27

मेरे पास एक डेटासेट है जिसे मैं एक सूची बॉक्स में बाध्यकारी हूं। हालांकि, मैं डेटाटेक्स्टफिल्ड बनाने के लिए दो फ़ील्ड गठबंधन करना चाहता हूं। क्या यह संभव है, या क्या मुझे डेटा पंक्तियों के माध्यम से लूप करना होगा?डेटाटेक्स्ट फ़ील्ड में दो फ़ील्ड का संयोजन। क्या यह संभव है?

lstAddressDropdown.DataSource = dsAddress; 
lstAddressDropdown.DataTextField = "StreetAddress" + "Place"; 
lstAddressDropdown.DataBind(); 
lstAddressDropdown.Items.Insert(0, new ListItem("Please select")); 

यह ध्यान देने योग्य है कि डाटासेट एक वेब सेवा से वापस आता है तो मैं वहाँ कॉलम गठबंधन करने के लिए किसी भी संग्रहीत प्रक्रिया को बदल नहीं सकते लायक है।

+0

क्या आप अपने डेटा स्रोत से एक फ़ील्ड में डेटा नहीं प्राप्त कर सकते हैं? –

उत्तर

39

आप एक गणना कॉलम के लिए एक अतिरिक्त कॉलम जोड़ सकते हैं जो एक गणना कॉलम है और इसे अपने डेटाटेक्स्टफील्ड (docs: Multi-field Data Binding) के रूप में उपयोग करें।

तो अपने उदाहरण के लिए आप कुछ इस तरह कर सकता है इसके बाद के संस्करण:

dsAddress.Tables[0].Columns.Add("StreetAndPlace",typeof(string),"StreetAddress + Place"); 
lstAddressDropdown.DataSource = dsAddress; 
lstAddressDropdown.DataTextField = "StreetAndPlace"; 
lstAddressDropdown.DataBind(); 
lstAddressDropdown.Items.Insert(0, new ListItem("Please select")); 

StreetAddress और प्लेस के बीच एक रिक्ति जोड़ने के लिए "StreetAddress + ' ' + Place"

+0

मैं इसे जाने दूंगा, धन्यवाद –

+1

यह मुझे आश्चर्यचकित करता है कि 2002 में लिखा गया मल्टी-फील्ड डेटा बाइंडिंग आलेख आज भी सहायक है ... –

2

साथ अभिव्यक्ति स्ट्रिंग ऊपर दिखाए गए की जगह के अनुसार आपके क्वेरी संशोधित अपने ओरेकल

SELECT 
'<B>'||SHORTNAME||'</B><br/>('||DEPARTMENT||')' AS USERNAME 
FROM TABLE 

में आवश्यकता में ऊपर क्वेरी नाम बोल्ड में है और यह विभाग के नीचे प्रदर्शित करेगी

<b>Mr. Jagdeep Mankotia</b><br> 
(Web Application Development) 
-1

तुम कभी LINQ के साथ अब और छोरों लिखने की ज़रूरत: की तरह प्रदर्शित करेगा।

  • अपने दो फ़ील्ड को वापस करने के लिए कक्षा बनाएं।

    सार्वजनिक आंशिक वर्ग कर्मचारी DropdownInfo { सार्वजनिक int person_id {get; सेट; } सार्वजनिक स्ट्रिंग कर्मचारी_नाम {प्राप्त करें; सेट; } }

  • अपना डेटा प्राप्त करें और फ़िल्टर करने के लिए linq का उपयोग करें और आपको जो चाहिए उसे वापस करें।

    सूची requestors = (dc.sp_GetEmployees (में टी से) नई EmployeeDropdownInfo() { person_id = t.person_id, employee_name = t.first_name + "" + t.last_name } चयन )। ToList ();

    कर्मचारी DropdownInfo firstEntry2 = नया कर्मचारी DropdownInfo() {person_id = 0, कर्मचारी_नाम = "- एक कर्मचारी का चयन करें -"}; अनुरोधकर्ता। निबंध (0, firstEntry2); ddlRequestor.DataSource = अनुरोधकर्ता; ddlRequestor.DataTextField = "कर्मचारी_नाम"; ddlRequestor.DataValueField = "person_id"; ddlRequestor.DataBind();

इस तरह आपको प्रो और ड्रॉपडाउन को बदलने की ज़रूरत नहीं है, केवल अधिकांश समय में दो मानों की आवश्यकता होती है।

+0

मैं ऐसा करने के लिए लिंक का उपयोग नहीं कर रहा था (दिन में वापस) । डेटासेट का उपयोग करके किया जाना था –

0

मुझे पता है कि यह पहले ही उत्तर दिया गया है लेकिन मुझे लगता है कि इस समस्या को हल करने का एक आसान तरीका है।

अपने चयन आदेश को संशोधित करें और 2 डेटाटेक्स्ट फ़ील्ड को गठबंधन करें जिसे आप प्रदर्शित करना चाहते हैं।

DataSource.SelectCommand = "Select (Column1 || ' ' || Column2) As Column1And2 From Table"; 

RadioButtonList1.DataTextField = "Column1And2"; 

उम्मीद है कि यह मदद करता है, शायद यह सबसे अच्छा तरीका नहीं है लेकिन मुझे लगता है कि यह समझना बहुत आसान है।

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