2009-12-24 13 views
5

में टेक्स्टबॉक्स साफ़ करना मेरे पास वेबपृष्ठ है जहां टेक्स्टबॉक्स में कुछ डिफ़ॉल्ट मान है।ASP.NET

मुझे टेक्स्ट बॉक्स से मूल्य साफ़ करना होगा। मेरे पास 2 विकल्प

1. textbox.text=""; 
2. textbox.text.remove(0,length); 

यहां मैं जानना चाहता हूं कि मुझे किस का उपयोग करना चाहिए। क्या यह पेज प्रदर्शन पर कोई प्रभाव डालता है क्योंकि पेज में कई टेक्स्टबॉक्स रखे गए हैं।

धन्यवाद

उत्तर

20

यह है करने के लिए सबसे अच्छा तरीका है ..

textbox.text = string.Empty; 

भी याद रखें कि स्ट्रिंग प्रकार अपरिवर्तनीय है!

+0

आपको बहुत बहुत धन्यवाद, यह एक अपरिवर्तनीय –

+2

अचल स्थिति जा रहा है आपके मामले में ज्यादा प्रभावित नहीं करता है के किसी भी प्रभाव बना है। लेकिन हां अपरिवर्तनीयता का बहुत बड़ा प्रभाव है। असाइनमेंट पर अपरिवर्तनीय वस्तुओं को मनोरंजन द्वारा दोहराया जाता है और कॉपी नहीं किया जाता है। अपरिवर्तनीय के लिए –

+0

+1। –

7

इससे कोई फर्क नहीं पड़ता - जो आपके और आपके सहयोगियों के लिए सबसे अधिक पढ़ने योग्य है।

कई string.Empty का उपयोग करना पसंद करते हैं।

+0

एक विधि कॉल असाइनमेंट के समान प्रदर्शन है? –

+2

@ जॉन कृपया - हम दोनों जानते हैं कि यह तुच्छ से परे है। –

+0

@Rex: शायद यह मेरे लिए सुबह बहुत जल्दी है, लेकिन आपका क्या मतलब है? –

1

संभवतः, जब आप उपयोगकर्ता बॉक्स में क्लिक करते हैं तो जावास्क्रिप्ट के साथ मूल्य साफ़ करना है? यदि ऐसा है, तो यह प्रदर्शन के लिए कोई फर्क नहीं पड़ेगा।

मैं अधिकांश पृष्ठों में jQuery का उपयोग करें, तो मैं बस इस समारोह स्पष्ट करने के मूलभूत मूल्यों onClick पाठ बॉक्स के clientid का उपयोग कर हुक,:

$('#ctl00_TextBox').click(function() { $('#ctl00_TextBox').val(''); 

आप codebehind में स्पष्ट इसका मतलब यह तो इस का उपयोग करें:

yourTextBox.Text = String.Empty; 
0

प्रदर्शन पर प्रभाव को भी कॉल के सैकड़ों/हजारों के साथ कम से कम हो जाएगा, हालांकि

textbox.text = ""; 

सिद्धांत रूप में, बहुत थोड़ा जल्दी होना चाहिए, क्योंकि आप बस एक नया मान निर्दिष्ट कर रहे हैं के बजाय स्ट्रिंग प्रसंस्करण (.remove करता है)

यह करने के लिए क्या करने के लिए सबसे अच्छा तरीका होगा

textbox.text = String.Empty; 

अद्यतन: यदि आप घड़ी-चक्रों की गणना कर रहे हैं, तो स्ट्रिंग। लक्षण वास्तव में तेज़ी से निष्पादित करेगा, क्योंकि यह एक नई वस्तु नहीं बनाता है, जबकि "" एक नई स्ट्रिंग ऑब्जेक्ट बना देगा।

हालांकि, आपको वास्तव में इसके बारे में बहुत चिंतित नहीं होना चाहिए, स्ट्रिंग को खाली करने के कई तरीके नहीं हैं जो प्रदर्शन समस्याओं का कारण बनेंगे! आपको जो भी सबसे ज्यादा पठनीय उपयोग करना चाहिए ...

+0

स्ट्रिंग क्यों है। "" से बेहतर लक्षण? "" इंटर्न किया गया है और स्ट्रिंग के समान है। एम्पटी। ऑब्जेक्ट। संदर्भ Equals (string.Empty, "") सच हो जाएगा। – helium

+0

आपके उत्तर का पहला बिट सही है, लेकिन मैं बाकी के बारे में भी निश्चित नहीं हूं। शायद आप जिस चीज के बारे में सुनिश्चित हैं उसके साथ रहें? –

+0

हां, इसे प्रशिक्षित किया जा सकता है, लेकिन ब्रैड एडम्स का तात्पर्य यह है कि यह आवश्यक नहीं है ... http://blogs.msdn.com/brada/archive/2003/04/22/49997.aspx तो स्ट्रिंग। लक्षण सुरक्षित है अगर हम वास्तव में इन कमजोर अनुकूलन के बाद हैं। हो सकता है कि संकलक इसे अनुकूलित/अनुकूलित/कर सके? मैंने आईएल को जांचने के लिए नहीं देखा है ... –

2
  1. दो विकल्पों के बीच प्रदर्शन अंतर मापने के लिए बहुत छोटा होगा, सबसे अधिक संभावना है।
  2. TextBox.Text = String.Empty; बहुत अधिक पठनीय है। यह स्पष्ट रूप से बताता है कि आप क्या करने का प्रयास कर रहे हैं: "इस टेक्स्ट बॉक्स की टेक्स्ट प्रॉपर्टी को खाली स्ट्रिंग पर सेट करें"।

मैं आपको असाइनमेंट के साथ जाने की सलाह देता हूं, क्योंकि यह तेज़ और अधिक स्पष्ट है।

1
textbox.text=""; 

या

foreach (var item in Page.Controls) 
    { 
     if (item is TextBox) 
     { 
      ((TextBox)item).Text = ""; 
     } 
    }