2012-01-02 5 views
10

काम नहीं कर रहा OnTextChanged है मैं एक ASP.NET अद्यतन पैनल का उपयोग कर रहा टेक्स्ट बॉक्स की अधिकतम TextChanged पर का उपयोग कर उपयोगकर्ता जानकारी प्राप्त करने में, यहाँ मेरी कोड है:क्यों एक asp.net

string url, emailInfo; 
emailInfo = loginEmail.Text; 
url = Membership.GetUserNameByEmail(emailInfo); 

emailText.InnerText = "Email: " + emailInfo; 
urlText.InnerText = "Webiste: http://www.Elwazefa.com/User/" + url ; 

ButtonClick या pageload पर textchanged पर कोड अभ्यस्त आग लेकिन यह wil, ।

समस्या क्या है?

पाठ बॉक्स पर ASP.NET 4,0

+0

यदि आप शीर्षक में पर्याप्त रूप से प्रश्न का योग नहीं कर सकते हैं ... यह संभवतः या तो सामान्य है या समस्या निवारण के उचित स्तर की कमी है। (इस मामले में यह सभी लागू संदर्भों में से अधिकांश गायब है और यह "काम नहीं करता" के बारे में पर्याप्त विवरण है।) –

+0

क्या आप अपना पूरा "userInfo" फ़ंक्शन दिखा सकते हैं? –

+0

टेक्स्ट चेंजड प्रत्येक कीस्ट्रोक पर आग नहीं लगाता है, अगर आप इसके बाद क्या हैं: http://stackoverflow.com/questions/826023/problem-with-textbox-inside-updatepanel-not-causing-ontextchanged-event और http: // stackoverflow.com/questions/1009086/how-to-make-an-asp-net-textbox-fire-its-ontextchanged-event-fire-in-an-ajax-upd। – patmortech

उत्तर

10
<asp:TextBox AutoPostBack="true" OnTextChanged="thingId_TextChanged" ID="thingId" runat="server"></asp:TextBox> 

AutoPostBack का प्रयोग के बाद वापस गति प्रदान जब फ़ोकस पाठ बॉक्स से खो दिया है होगा। TextChanged घटना किसी भी बाद के पोस्ट-बैक पर निकाल दी जाएगी (बटन-क्लिक या टेक्स्ट बॉक्स फ़ोकस परिवर्तन के कारण हो सकती है)। तो अगर आप कुछ बनाने के लिए

  1. के बाद पाठ बदल गया है की जरूरत है, तो आप पाठ बॉक्स से बाहर जा रहे हैं
  2. जो कुछ भी नियंत्रित करता है कि आप परिवर्तन कर रहे हैं अद्यतन पैनल का हिस्सा हैं (विभिन्न अद्यतन पैनल हो सकता है)। यदि किसी भी अद्यतन पैनल का हिस्सा नहीं है तो वे परिवर्तन ग्राहक पक्ष पर दिखाई नहीं देंगे।

मेरा अनुमान है कि आप शायद # 2 से पीड़ित हैं। आप टेक्स्ट-बॉक्स से फोकस खो जाने पर ब्राउज़र को AJAX (XHR) अनुरोध को फायर कर रहा है या नहीं, यह देखने के लिए कि फ़िडलर (या फ़ायरफ़ॉक्स पर फ़ायरबग) जैसे टूल का उपयोग कर सकते हैं।

+0

हाँ मेरी समस्या # 2 थी, धन्यवाद – Wahtever

4

@VinayC पोस्ट के रूप में, AutoPostBack का अर्थ है कि पृष्ठ TextBox फोकस खो देता है जब पृष्ठ सर्वर पर पोस्टबैक करेगा। कोई अंतर्निहित घटना किसी पाठ इनपुट में जोड़े गए प्रत्येक वर्ण पर पोस्टबैक का कारण बनती है, और अच्छे कारण के लिए। UpdatePanel पोस्टबैक पृष्ठ को झिलमिलाहट नहीं करते हैं, लेकिन वे एक पूर्ण पोस्टबैक के रूप में उतना ही भारी हो सकते हैं।

आप इस के आसपास काम करना चाहते हैं, तो आप अपने पाठ बॉक्स एक ग्राहकonchanged ईवेंट हैंडलर, जावास्क्रिप्ट जिनमें से Page.ClientScript.GetPostBackEventReference() से बनाया जाएगा दे सकते हैं।

सही समाधान onchanged में एक UpdatePanel आंशिक पोस्टबैक अपना JavaScript कोड के बजाय से एक AJAX विधि कॉल उपयोग करने के लिए किया जाएगा।