ASP.NET AJAX / ICallbackEventHandler ব্যবহার করে ট্র্যাকিং রাজ্য

আমি একটি ASP.NET AJAX পৃষ্ঠায় রাষ্ট্র বজায় রাখার একটি সমস্যা আছে। সংক্ষিপ্ত সংস্করণ: একটি এসিস্ক কলব্যাকের পর পৃষ্ঠাটি আপডেট করার কিছু উপায়ের প্রয়োজন, যেকোনো অবস্থা পরিবর্তন করার জন্য async কলের সময় তৈরি সার্ভার পরিবর্তন করা।

এটি একটি সাধারণ সমস্যা বলে মনে হয়, কিন্তু আমি ব্যাখ্যা করার জন্য আমার দৃশ্যকল্প বর্ণনা করব:

আমার একটি গ্রিডের মত নিয়ন্ত্রণ আছে যা কিছু জাভাস্ক্রিপ্টের বর্ধন আছে - যথা, কলাম এবং সারিগুলিকে টেনে আনতে এবং ড্রপ করার ক্ষমতা। যখন একটি কলাম বা সারি একটি নতুন অবস্থানে বাদ পড়ে যায়, তখন একটি এ্যাজ্যাক্স পদ্ধতিটি কন্ট্রোল সার্ভার-সাইডকে সূচিত করে এবং সংশ্লিষ্ট সার্ভার-সাইড ইভেন্ট ("অনকুলামমোডেড" বা "অনRowMoved") আক্রান্ত হয়।

ডিফল্ট হিসাবে ASP.NET AJAX কল, অনুরোধ হিসাবে পুরো পৃষ্ঠাটি পাঠান। এই পৃষ্ঠাটি একটি সম্পূর্ণ জীবনচক্রের মধ্য দিয়ে যায়, রক্ষণশীলতা রক্ষিত হয় এবং রায়েসেকলব্যাকঅভেন্ট পদ্ধতি চালু হওয়ার আগে নিয়ন্ত্রণের অবস্থা পুনরুদ্ধার করা হয়।

However, since the AJAX call does not update the page, the ViewState reflects the original state of the control, even after the column or row has been moved. So the second time a client-side action occurs, the AJAX request goes to the server and the page & control are built back up again to reflect the first state of the control, not the state after the first column or row was moved.

এই সমস্যা অনেক প্রভাব পর্যন্ত প্রসারিত উদাহরণস্বরূপ, যদি আমাদের একটি ক্লায়েন্ট-সাইড / AJAX অ্যাক্টিভেশন থাকে তবে গ্রিডে একটি নতুন আইটেম যোগ করা যায়, এবং তারপর একটি সারি টেনে আনা হয়, ক্লায়েন্ট-সাইডের চেয়ে গ্রিডটি সার্ভার-সাপোর্ট এক কম আইটেম দিয়ে তৈরি করা হয়।

And finally & most seriously for my specific example, the actual data source object we are acting upon is stored in the page ViewState. That was a design decision to allow keeping a stateful copy of the manipulated data which can either be committed to DB after many manipulations or discarded if the user backs out. That is very difficult to change.

সুতরাং, আবার, আমি AJAX পদ্ধতি চালানো হয় পরে ফোন দেখুনস্টেক্স কলব্যাক আপডেট করার জন্য একটি উপায় প্রয়োজন।

0

5 উত্তর

আমি আসলে আপনি উপলব্ধ যারা লিঙ্ক উভয় পাওয়া যায়, কিন্তু হিসাবে উল্লিখিত তারা সহজভাবে সমস্যা বর্ণনা করা হয়, এটি সমাধান না। ব্লগ পোস্টের লেখক একটি ভিন্ন দৃষ্টিভঙ্গী প্রদানকারীর ব্যবহার করে একটি কার্যধারা প্রস্তাব করেছেন, কিন্তু দুর্ভাগ্যবশত এই ক্ষেত্রে একটি সম্ভাবনা নেই ... আমি সত্যিই কেবল ViewState এর বিবরণগুলি ছেড়ে যাচ্ছি এবং যা করা হচ্ছে তার উপর শুধু হুক রাখি বাক্সের বাইরে.

0
যোগ

যদি আপনি ইতিমধ্যেই কোনও ভিউস্টেলে শেলিং করছেন, তবে আপনি হয়তো UpdatePanel ব্যবহার করতে পারেন। এর আংশিক পোস্টব্যাকগুলি পৃষ্ঠাটির ভিউস্টেটি স্বয়ংক্রিয়ভাবে আপডেট করবে।

0
যোগ

আমি বুঝতে পারছি না কেন আপনি যে জন্য একটি কাস্টম নিয়ন্ত্রণ ব্যবহার করবেন, যখন বিল্টিন ASP.NET AJAX UpdatePanel একই জিনিস করে

এটি আরো জটিলতা যোগ করে, আপনাকে কম সমর্থন দেয়, এবং অন্যদের আপনার অ্যাপে কাজ করার জন্য এটি আরও কঠিন করে তোলে।

0
যোগ

এই ব্লগ পোস্টটি দেখুন: ICallbackEventHandler এবং দেখুনস্টাটকে টাচিং করা । লেখক মনে করেন যে আপনি যে পরিস্থিতির মুখোমুখি আছেন, সেটি ঠিক করা হচ্ছে:

তাই যখন আপনি ICallbackEventHandler ব্যবহার করেন তখন কলব্যাকের জন্য আপডেট হওয়া রাষ্ট্রীয় ব্যবস্থাপনায় অতিক্রম করার জন্য আপনার কাছে দুটি বাধা রয়েছে। প্রথমটি কেবলমাত্র পঠনযোগ্য দর্শন কেন্দ্রের সমস্যা। অন্যটি মূলত কলব্যাক ট্রিগার করার আগে ব্যবহারকারীকে সেই পৃষ্ঠাটিতে পরিবর্তন করে নিবন্ধন করছে।

এটি কিভাবে সমাধান করবেন তার পরামর্শের জন্য ব্লগ পোস্টটি দেখুন। এছাড়াও এই ফোরাম পোস্ট চেক করুন যা একই সমস্যা নিয়েও আলোচনা করে।

0
যোগ