मेरे पास एक डेटालिस्ट है जिसमें लोगों के पास एक संग्रह है, जिसमें प्रत्येक व्यक्ति को बटन होता है, जब क्लिक किए जाने पर एसिंक्रोनस पोस्टबैक का कारण बनता है, तो ऑनक्लिक ईवेंट हैंडलर अपडेटपेनल में दिखाए गए विवरण को बदल सकता है [डेटालिस्ट के बाहर है UpdatePanel]।डेटालिस्ट में बटन से अपडेटपेनल के लिए हमेशा एक असीमित पोस्टबैक को कैसे ट्रिगर करें?
मैंने डेटालिस्ट के OnItemDataBound ईवेंट हैंडलर में UpdatePanel को बदलने के लिए बटन सेट करने के दो प्रयास किए हैं। एक AsyncPostBackTrigger को अद्यतन पैनेल में असाइन करता है और दूसरा ScriptAancPostBackControl को ScriptManager पर था। दोनों काम करते हैं लेकिन केवल पहली बार। यदि किसी अन्य व्यक्ति का बटन [या दूसरी बार एक ही बटन] दबाया जाता है तो पृष्ठ पूरी तरह से वापस पोस्ट किया जाता है।
अद्यतन पैनेल का अपडेटमोड सशर्त पर सेट है और स्क्रिप्ट मैनेजर में सक्षम पार्टनर रेन्डरिंग सक्षम पोर्टेबल रेंडरिंग सही है।
OnItemDataBound में कोड:
Button btnShowNotes = e.Item.FindControl("btnShowNotes") as Button;
// Trigger
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = btnShowNotes.UniqueID;
trigger.EventName = "Click";
upDetails.Triggers.Add(trigger); // UpdatePanel
// The trigger or this is used, not both
ScriptManager1.RegisterAsyncPostBackControl(btnShowNotes);
एक बार पहले Async PostBack हुआ है यह संदर्भ खोने के लिए लगता है, लेकिन निश्चित रूप से यह लगातार DataList rebind बिना कायम किया जा सकता है? जिस तरह से मैं कोशिश कर रहा हूं उसमें मुझे कुछ याद आना चाहिए।
शायद सप्ताहांत पर उत्तरों की तलाश करना शायद सफल नहीं होगा, लेकिन कष्टप्रद [आमतौर पर] मुझे इसे सोमवार से पहले हल करने की आवश्यकता है क्योंकि नई सुविधाओं को सोमवार को लाइव होने की जरूरत है, और यह एकमात्र चीज है जो इसे पूरा होने से रोकती है! – Rich