একটি আপডেটপ্যানেল কোনও আপডেটে আপডেট প্যানেলের সামগ্রীগুলি সম্পূর্ণরূপে প্রতিস্থাপন করে। এর অর্থ হ'ল যে ইভেন্টগুলি আপনি সাবস্ক্রাইব করেছেন সেগুলি আর সাবস্ক্রাইব হবে না কারণ আপডেট প্যানেলে নতুন উপাদান রয়েছে।
আমি এর চারপাশে কাজ করার জন্য যা করেছি তা হ'ল প্রতিটি আপডেটের পরে আমার প্রয়োজনীয় ইভেন্টগুলি পুনরায় সাবস্ক্রাইব করা। আমি $(document).ready()
প্রাথমিক লোডের জন্য ব্যবহার করি , তারপরে PageRequestManager
প্রতিটি আপডেট পুনরায় সাবস্ক্রাইব করতে মাইক্রোসফ্ট (যদি আপনার পৃষ্ঠায় আপডেট প্যানেল থাকে তবে উপলব্ধ) ব্যবহার করি।
$(document).ready(function() {
// bind your jQuery events here initially
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
// re-bind your jQuery events here
});
PageRequestManager
একটি জাভাস্ক্রিপ্ট অবজেক্ট যা স্বয়ংক্রিয়ভাবে উপলব্ধ হলে একটি আপডেট প্যানেল পৃষ্ঠাতে হয়। আপডেটপ্যানেল পৃষ্ঠাটিতে যতক্ষণ না থাকে ততক্ষণ এটিকে ব্যবহার করার জন্য আপনার উপরের কোড ব্যতীত অন্য কিছু করার দরকার নেই।
আপনার যদি আরও বিশদ নিয়ন্ত্রণের প্রয়োজন হয় তবে এই ইভেন্টটি .NET ইভেন্টগুলি কীভাবে আর্গুমেন্টগুলি পাস হয় তার অনুরূপ আর্গুমেন্টগুলি পাস করে (sender, eventArgs)
যাতে আপনি কী ঘটনাকে উত্থাপিত করেছেন তা দেখতে এবং প্রয়োজনে কেবল পুনরায় আবদ্ধ করতে পারেন।
মাইক্রোসফ্ট থেকে নথিপত্রের সর্বশেষ সংস্করণটি এখানে রয়েছে: msdn.microsoft.com/.../bb383810.aspx
আপনার প্রয়োজনের উপর নির্ভর করে আপনার কাছে থাকতে পারে আরও ভাল বিকল্প হ'ল jQuery এর ব্যবহার .on()
। এই আপডেটটি প্রতিটি আপডেটে DOM উপাদানগুলিতে পুনরায় সাবস্ক্রাইব করার চেয়ে আরও দক্ষ। আপনি এই পদ্ধতির ব্যবহারের আগে সমস্ত ডকুমেন্টেশন পড়ুন, কারণ এটি আপনার প্রয়োজনগুলি মেটাতে পারে বা নাও পারে। অনেকগুলি jQuery প্লাগইন রয়েছে যা ব্যবহারের জন্য রিফ্যাক্টরটি অযৌক্তিক হতে পারে .delegate()
বা .on()
তাই, সেই ক্ষেত্রে আপনি পুনরায় সাবস্ক্রাইব করা থেকে ভাল।