2012-06-08 13 views
6

मैं सी # में एएसपी.NET प्रोजेक्ट लिख रहा हूं।एएसपी से टेक्स्ट प्राप्त करें: टेक्स्टबॉक्स

UpdateUserInfo.aspx पृष्ठ में टेक्स्टबॉक्स और बटन शामिल हैं। पेज लोड() विधि में मैंने कुछ टेक्स्ट टेक्स्टबॉक्स में सेट किया है और जब बटन काटा जाता है तो मुझे टेक्स्टबॉक्स का नया मान मिलता है और इसे डीबी में लिखता है।

समस्या यह है कि मैंने टेक्स्टबॉक्स टेक्स्टबॉक्स का मूल्य बदल दिया है। टेक्स्ट() विधि टेक्स्टबॉक्स का पुराना मान ("कभी भी") देता है और इसे डीबी में लिखता है।

यहाँ तरीके:

protected void Page_Load(object sender, EventArgs e) 
{ 
    textbox.text = "sometext"; 
} 

void Btn_Click(Object sender,EventArgs e) 
{ 
    String textbox_text = textbox.text();// this is still equals "somevalue", even I change the textbox value 
    writeToDB(textbox_text); 
} 

तो, कैसे पाठ बॉक्स शुरू में somevalue साथ प्रकट करने के लिए बनाने के लिए, लेकिन जब उपयोगकर्ता बदलता है यह मान gettext विधि नई बदली हुई मान और डीबी में इस बारे में?

+1

आप यहाँ पढ़ सकते हैं http://stackoverflow.com/questions/829249/what-does-ispostback-actually-mean – Ravia

उत्तर

16
protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.IsPostBack) 
    { 
     textbox.text = "sometext"; 
    } 
} 

पोस्टबैक बटन पर क्लिक "somevalue" को textboxs पाठ संपत्ति स्थापित कर रही है वापस, आप केवल एक बार के रूप में ऊपर मान सेट करना चाहते हैं।

पोस्टबैक समझाया:

एएसपी वेब विकास के संदर्भ में, एक पोस्टबैक HTTP POST का दूसरा नाम है। एक इंटरैक्टिव वेबपेज में, किसी प्रपत्र की सामग्री को कुछ जानकारी संसाधित करने के लिए सर्वर पर भेजा जाता है। इसके बाद, सर्वर ब्राउज़र पर एक नया पृष्ठ वापस भेजता है।

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

Source

View State पर पढ़ना भी समझ यह सब कैसे फिट बैठता है में सहायक होगा।

+0

क्या आप पोस्टबैक क्या समझा सकते हैं, कृपया? .. – Nurlan

+0

तो Btn_Click विधि अपडेट पेज, यानी। पेज_लोड भी कॉल किया जाता है जब बटन हां क्लिक किया जाता है? और पोस्टबैक का उपयोग यह सूचित करने के लिए किया जाता है कि बटन ने पेज_लोड विधि कहा है। क्या मैं सही हू? – Nurlan

+1

बटन क्लिक ईवेंट एक पोस्टबैक का कारण बनता है। पेज लोड को तब लोड किया जाता है जब पेज लोड होता है, या तो पहली बार या पोस्टबैक के कारण। कोड के बाद आपकी लाइन को बाद में पोस्टबैक के लिए पहली बार पृष्ठ लोड किया जा रहा है, इसलिए आपका नया मान कभी सेट नहीं होता है। भविष्य में, यदि आप केवल पृष्ठ को लोड करना चाहते हैं तो पृष्ठ पहले लोड होने पर और पोस्टबैक पर नहीं, तो आपको उसे '! पेज.इस्पोस्टबैक' ब्लॉक के अंदर रखना होगा। – dtsg

1
पृष्ठ लोड textbox पर असल में

फिर से initilized

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      textbox.text = "sometext"; 
     } 
    } 
    void Btn_Click(Object sender,EventArgs e) 
    { 
     String textbox_text = textbox.text; 
     writeToDB(textbox_text); 
    } 
1

पृष्ठ लोड घटना में जांच करें पृष्ठ पोस्टबैक है ....

2

इस प्रयास करें:

If (!IsPostBack) 
{ 
textbox.text = "sometext"; 
}