2012-07-12 19 views
14

मैं एक पेज के सभी नियंत्रण और भी अपने प्रकार की आईडी प्राप्त करने के लिए पेज में सक्षम हूँ के लिए जांच की जा रही है जब मैं इसे प्रिंटनियंत्रण प्रकार

myPhoneExtTxt Type:System.Web.UI.HtmlControls.HtmlInputText 

इस इस कोड के आधार पर जेनरेट कर रहा है पता चलता

foreach (Control c in page) 
    { 
     if (c.ID != null) 
     { 
      controlList.Add(c.ID +" Type:"+ c.GetType()); 
     } 
    } 

लेकिन अब मैं अपनी तरह की जांच और उसके प्रकार HtmlInput अगर यह में पाठ का उपयोग करने की जरूरत है और मैं काफी है कि कैसे करना है यकीन नहीं है।

if(c.GetType() == (some htmlInput)) 
{ 
    some htmlInput.Text = "This should be the new text"; 
} 

तरह

कैसे मैं यह कर सकता हूँ, मुझे लगता है कि आप अंदाजा हो ?.

उत्तर

31

यह आप सभी की जरूरत हो सकता है अगर मैं तुम्हें क्या पूछ रहे हैं मिलता है:

if (c is TextBox) 
{ 
    ((TextBox)c).Text = "This should be the new text"; 
} 

अपने प्राथमिक लक्ष्य कुछ पाठ सिर्फ स्थापित करने के लिए है, तो:

if (c is ITextControl) 
{ 
    ((ITextControl)c).Text = "This should be the new text"; 
} 

आदेश एक छिपे हुए समर्थन करने के लिए में साथ ही क्षेत्र:

string someTextToSet = "this should be the new text"; 
if (c is ITextControl) 
{ 
    ((ITextControl)c).Text = someTextToSet; 
} 
else if (c is HtmlInputControl) 
{ 
    ((HtmlInputControl)c).Value = someTextToSet; 
} 
else if (c is HiddenField) 
{ 
    ((HiddenField)c).Value = someTextToSet; 
} 

अतिरिक्त नियंत्रण/इंटरफेस होता तर्क में शामिल होना।

+0

क्या इसमें इनपुट प्रकार छिपा हुआ है? – user1416156

+0

दुर्भाग्य से, नहीं। छुपे हुए ढक्कन गंदे छोटे झुकाव हैं कि वे कुछ भी उपयोगी से प्राप्त नहीं होते हैं और उन्हें सीधे तौर पर जिम्मेदार माना जाना चाहिए। मैंने समर्थन शामिल करने के लिए अपना जवाब संपादित किया है। –

+0

इस तरह के चेक प्रकार में 'as' ऑपरेटर का उपयोग करने पर भी विचार करें। –

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

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