রিপিটার, তালিকাভিউ, ডাটালিস্ট, ডেটাগ্রিড, গ্রিডভিউ… কোনটি বেছে নেবে?


111

বিভিন্ন কন্ট্রোল থেকে বেছে নিন! এএসপি.নেটে ডেটা প্রদর্শনের জন্য কোন নিয়ন্ত্রণটি ব্যবহার করতে হবে তা নির্ধারণের জন্য সেরা অনুশীলনগুলি কী কী?


2
এই প্রশ্নের কেবল একটি নির্দিষ্ট উত্তর আছে: এটি নির্ভর করে। আপনি কি করতে চেষ্টা করছেন?
তোমালাক

@ তোমালাক আমি কেবলমাত্র ডেটার একটি তালিকা প্রদর্শন করছি ... সাধারণত আমি কেবল পুনরাবৃত্তকারী ব্যবহার করি তবে অন্যগুলি ব্যবহারের উপকারিতা / ধারণাগুলি দেখতে চাই।
mattruma

উত্তর:


144

আপনি যা অর্জন করার চেষ্টা করছেন এটি এটি সত্যই

  • গ্রিডভিউ - ডিজাইনে সীমাবদ্ধ, এইচটিএমএল টেবিলের মতো কাজ করে। সম্পাদনা / আপডেট, পৃষ্ঠা, সাজানোর মতো বিল্ট কার্যকারিতাতে আরও। প্রচুর ওভারহেড।

  • ডেটাগ্রিড - গ্রিডভিউর পুরানো সংস্করণ। গ্রিডভিউ হ'ল একটি সুপার ডেটাগ্রিড।

  • ডেটালিস্ট - গ্রিডভিউয়ের আরও কাস্টমাইজযোগ্য সংস্করণ। এছাড়াও কিছু ওভারহেড আছে আপনার নিজের এটি ডিজাইন করতে হওয়ায় আরও ম্যানুয়াল কাজ।

  • লিস্টভিউ - নতুন ডেটালিস্ট :)। ডেটালিস্ট এবং গ্রিডভিউয়ের প্রায় একটি হাইব্রিড যেখানে আপনি কার্যকারিতার মতো গ্রিডভিউতে পেজিং এবং বিল্ড করতে পারেন তবে ডিজাইনের স্বাধীনতা থাকতে পারে have এই পরিবারে নতুন নিয়ন্ত্রণগুলির মধ্যে একটি

  • রিপিটার - খুব হালকা ওজন। শিরোনাম, পাদচরণ মত কার্যকারিতা মধ্যে নির্মিত। কমপক্ষে ওভারহেড আছে


12
এই উত্তরটি এখনও আপ টু ডেট? (যেহেতু এটি ২০০৮ সালের এবং এটি ২০১৩ সালের)
মিশেল আয়রেস

3
.NET 4.5 এর পরে @ মিশেল রিপিটার দৃ strongly়ভাবে টাইপ করা হয়েছে। আমি ওটা অনেক পছন্দ করি।
এভেগেনি নাবোকভ

1
@ মিশেল আইরেস আমি সাধারণভাবে হ্যাঁ বলব। এমএস ২০০৮ সাল থেকে ওয়েবফোমে কিছু আপডেট করেছে, উত্তরে দেওয়া সাধারণ ধারণাগুলি একই রকম।
আকস্মমত

2
হুমম .. "শিরোনাম, পাদলেখ যেমন কার্যকারিতা মধ্যে নির্মিত না" ভাল, এখানে শিরোনামচর্চা এবং পাদচরণ টেম্প্লেট আছে .. আপনি যদি নিজের <টেবিল> এবং </ টেবিল> ট্যাগগুলির মতো জিনিস রাখতে চান।
বিজ্ঞাপন

28

অন্য প্রত্যেকে এটি আঘাত করেছে: এটি নির্ভর করে।

এখন কিছু নির্দিষ্ট দিকনির্দেশনার জন্য (উপরে ওয়েবডুডের দুর্দান্ত উত্তরের উপর প্রসারিত) ...

আপনার ডিজাইনটি কোনও প্রাকৃতিক স্প্রেডশিটে বা ডেটার গ্রিড দর্শনে ফিট করে? GridView

আপনার কি সম্ভবত কোনও শিরোনাম এবং পাদচরণ এবং সম্ভবত নির্দিষ্ট নিয়ন্ত্রণ এবং / অথবা ডেটা প্রতিটি রেকর্ডের জন্য ফর্ম্যাটিং সহ ডেটা সম্পর্কিত কোনও তালিকা বা অন্যান্য বিন্যাসিত দৃশ্য প্রদর্শন করার দরকার আছে? (ইজি, কাস্টমাইজড লিঙ্কগুলি, সম্ভবত লিঙ্কব্যাটনগুলি বা নির্দিষ্ট সম্পাদনা নিয়ন্ত্রণগুলি?) এই প্রদর্শনটি কী স্প্রেডশিট বা গ্রিড দৃশ্যে বিশেষত ফিট করে না ? তালিকা দেখুন

আপনি যদি তালিকাভিউয়ের সমস্ত মানদণ্ড পূরণ করেন তবে আপনি স্বাভাবিকভাবে কোনও গ্রিডে ফিট থাকবেন, আপনি ডেটালিস্ট বিবেচনা করতে পারেন ।

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


19

মার্কআপ ভিউ

নিম্নলিখিত 3 টি নমুনা কোড ঘোষণা করা 3 টির জন্যই সম্ভব (তালিকার ভিউ, ডাটালিস্ট, পুনরাবৃত্তিকারী)

<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%>    </ItemTemplate>
<asp:ListView>

নিম্নলিখিত তালিকাগুলিতে আপনি তাদের প্রত্যেকটির জন্য উপলব্ধ টেম্পলেট এবং বিকল্পগুলি দেখতে এবং নিজের জন্য পার্থক্যগুলি দেখতে পারেন

তালিকাভিউ (সম্পাদনা, গোষ্ঠী, সন্নিবেশ, বিন্যাস নোট করুন)

  • AlternatingltemTemplate
  • EditltemTemplate
  • EmptyDataTemplate
  • EmptyltemTemplate
  • GroupSeparatorTemplate
  • GroupTemplate
  • lnsertltemTemplate
  • ItemSeparatorTemplate
  • ItemTemplate
  • LayoutTemplate
  • SelectedltemTemplate

ডেটালিস্ট ( স্টাইলের জোড়গুলি নোট করুন)

  • AlternatingltemStyle
  • AlternatingltemTemplate
  • EditltemStyle
  • EditltemTemplate
  • FooterStyle
  • FooterTemplate
  • HeaderStyle
  • HeaderTemplate
  • ItemStyle
  • ItemTemplate
  • SelectedltemStyle
  • SelectedltemTemplate
  • SeparatorStyle
  • SeparatorTemplate

পুনরায় কারক

  • AlternatingltemTemplate
  • FooterTemplate
  • HeaderTemplate
  • ItemTemplate
  • SeparatorTemplate

কোড ভিউ (উন্নত দর্শন)

কম্পোজিটডেটাবাউন্ডকন্ট্রোল :

নিম্নলিখিত শ্রেণীর শ্রেণিবিন্যাস (এবং সম্পর্কিত নিয়ন্ত্রণগুলি) দেখুন।

এই নিয়ন্ত্রণগুলি ব্যবহারকারীর কাছে সীমাবদ্ধ-ডেটা প্রদর্শন করতে তাদের টেম্পলেটগুলিতে অন্যান্য এ্যাসটনেট নিয়ন্ত্রণগুলি হোস্ট করে

কম্পোজিট ডেটাবাউন্ডকন্ট্রোল ক্লাস (এবং সম্পর্কিত নিয়ন্ত্রণগুলি)

আরও ভাল স্পষ্টতার জন্য কিছু বিবরণ

তালিকাগুলি নিয়ন্ত্রণ

তালিকাগুলি নিয়ন্ত্রণ ডেটা প্রদর্শনের জন্য টেম্পলেটগুলিও ব্যবহার করে। তবে এটি অনেকগুলি অতিরিক্ত টেমপ্লেট সমর্থন করে যা আপনার ডেটা নিয়ে কাজ করার সময় আরও দৃশ্যের জন্য মঞ্জুরি দেয়। এই টেম্পলেটগুলির মধ্যে লেআউটটেম্পলেট, গ্রুপপ্যাম্পলেট, আইটেমসেপারেটর টিম্পলেট অন্তর্ভুক্ত রয়েছে ।

তালিকাগুলি নিয়ন্ত্রণ ( ডেটালিস্ট এবং পুনরায়কারের বিপরীতে ) কোনও তথ্য উত্স নিয়ন্ত্রণ ব্যবহার করে ডেটা সম্পাদনা, সন্নিবেশ করানো এবং মুছে ফেলার ক্ষমতাটিকেও স্পষ্টত সমর্থন করে। আপনি এই পরিস্থিতিতে প্রতিটি জন্য পৃথক টেমপ্লেট সংজ্ঞায়িত করতে পারেন।

ডেটালিস্ট নিয়ন্ত্রণ

ডেটালিস্ট নিয়ন্ত্রণ রিপিটার নিয়ন্ত্রণের মতো কাজ করে । এটি আপনার ডেটা সেটে প্রতিটি সারির জন্য ডেটার পুনরাবৃত্তি করে এবং এটি আপনার সংজ্ঞায়িত টেম্পলেট অনুযায়ী এই ডেটা প্রদর্শন করে। তবে এটি বিভিন্ন HTML স্ট্রাকচারের মধ্যে টেমপ্লেটে সংজ্ঞায়িত ডেটা দেয়। এর মধ্যে অনুভূমিক বা উল্লম্ব বিন্যাসের বিকল্পগুলি অন্তর্ভুক্ত রয়েছে এবং এটি আপনাকে প্রবাহ বা টেবিল বিন্যাস হিসাবে কীভাবে ডেটা পুনরাবৃত্তি করা উচিত তা সেট করার অনুমতি দেয়

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

রিপিটার নিয়ন্ত্রণ

রিপিটার নিয়ন্ত্রণ কাস্টম বাইন্ডিং সংজ্ঞায়িত করতে টেম্পলেটগুলি ব্যবহার করে। তবে এটি ব্যক্তিগত রেকর্ড হিসাবে ডেটা প্রদর্শন করে না। পরিবর্তে, এটি আপনার টেমপ্লেটে নির্দিষ্ট করার সাথে সাথে ডাটা সারিগুলি পুনরাবৃত্তি করে। এটি আপনাকে ডেটাগুলির একক সারি তৈরি করতে এবং এটি আপনার পৃষ্ঠা জুড়ে পুনরাবৃত্তি করতে দেয়।

রিপিটার নিয়ন্ত্রণটি কেবল পঠনযোগ্য টেম্পলেট। এটি, এটি কেবল আইটেম টেম্পলেট সমর্থন করে। এটি স্পষ্টভাবে সম্পাদনা, সন্নিবেশ এবং মুছে ফেলার সমর্থন করে না। আপনার যদি এই কার্যকারিতাটির প্রয়োজন হয় তবে আপনার অন্য একটি নিয়ন্ত্রণের কথা বিবেচনা করা উচিত, অন্যথায় আপনাকে পুনরায় পুনরায় নিয়ন্ত্রণের জন্য নিজেকে কোড করতে হবে


উপরোক্ত বর্ণনাগুলি মাইক্রোসফ্ট.এনইটি ফ্রেমওয়ার্ক 4 বইয়ের সাথে এমসিটিএস পরীক্ষা 70-515 ওয়েব অ্যাপ্লিকেশন ডেভলপমেন্ট থেকে রয়েছে

এই গ্রন্থে ডেটাগ্রিডের কথাও উল্লেখ করা হয়নি এবং জনপ্রিয় গ্রিডভিউস দ্বারা প্রতিস্থাপন করা হয়েছে এবং অন্যান্য ব্যবহারকারীরা তাদের সুন্দর উত্তর দিয়েছেন


1
সব উত্তরের দুর্দান্ত বর্ণনা!
Ali007

আমার ভালতা ... একটি সম্পূর্ণ উত্তরের সংজ্ঞা। সাবাশ.
ব্যবহারকারী3308043

6

প্রকৃতপক্ষে! আমি ASP.NET 4.0 ডেটা সরঞ্জামগুলির মধ্যে পার্থক্য নিয়ে ব্লগ করেছি । মূলত, গ্রিডভিউগুলি সারণী তথ্য উপস্থাপনের সবচেয়ে শক্তিশালী উপায়, অন্যদিকে তালিকাভুক্ত নিয়ন্ত্রণগুলি পুনরাবৃত্ত তথ্যের আরও জটিল প্রদর্শনের জন্য। আমি যদি কোনও এএসপি.নেট নবিতাকে পরামর্শ দিচ্ছিলাম, আমি তাদের ভিতরে গ্রিডভিউ শিখতে এবং শুরু করার জন্য অন্যান্য নিয়ন্ত্রণগুলি উপেক্ষা করতে বলতাম।


কেবল আমার নিজের ব্লগে একটি মন্তব্য যুক্ত করতে: ২-৩ বছর অবধি, আমি যা সুপারিশ করছি তা হল পরিবর্তে এএসপি.নেট এমভিসি শেখা, যা প্রশ্নটিকে অপ্রাসঙ্গিক করে তোলে (এবং গ্রিডগুলি তুচ্ছ থেকে ঘটনা উত্থাপন করে)। যাইহোক, এটি একটি দীর্ঘ লার্নিং বক্ররেখা!
অ্যান্ডি ব্রাউন

5

এটি কীভাবে আপনি আপনার ডেটা বিন্যাস করতে চান তা নেমে আসে।

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

গ্রিডভিউ একটি আপডেট করা ডেটাগ্রিড তাই ডেটাগ্রিড ব্যবহারের খুব কম কারণেই সম্ভবত নেই। গ্রিডভিউ স্ট্যান্ডার্ড এএসপি.নেট ডেটাসোর্সাগুলি আপ করার সময় সত্যই ভাল কাজ করে তবে প্রচুর লেআউট বিধি সহ আপনাকে একটি সারণী বিন্যাসে সীমাবদ্ধ করে। আপনি একটি অন্তর্নির্মিত বিন্যাস ব্যবহার করছেন বলে গ্রিডভিউয়ের কম কোড দরকার requires

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.