تفاوت بين DataList ، DataGrid و Repeater در ASP.NET New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 پنجشنبه  3  فروردين  1396  2017  Mar.  23   Thursday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 تفاوت بين DataList ، DataGrid و Repeater (بخش دوم )

 مديريت وب

12755

13

4.3

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

تفاوت بين DataList ، DataGrid و Repeater (بخش دوم )

تفاوت بين DataList ، DataGrid و Repeater (بخش دوم )

در بخش اول اين مقاله با کنترل های  DataList، Repeater و DataGrid و برخی ويژگی های مشترک آنان ، آشنا شديم . در بخش دوم به بررسی ساير موارد مرتبط به هر يک از کنترل های فوق ، خواهيم پرداخت .

کنترل DataGrid  :

  • کنترل DataGrid به منظور نمايش داده در يک جدول HTML ، طراحی شده است. هر رکورد  موجود در DataSource مرتبط با DataGrid به صورت  يک سطر در جدول  HTML  نمايش داده می شود.

  • DataGrid دارای خصلتی با نام AutoGenerateColumns است که می تواند مقدار True و يا False را داشته باشد . در صورتی که مقدار خصلت فوق True باشد ( گزينه پيش فرض )، هر فيلد موجود در DataSource به عنوان يک ستون در جدول HTML نمايش داده می شود . در صورتی که خصلت AutoGenerateColumns مقدار False را دارا باشد ، برنامه نويسان می بايست ستون های مورد نظر برای نمايش را مشخص نمايند .

  • DataGrid ، هر رکورد موجود در DataSource را به عنوان يک سطر و هر فيلد را به صورت  يک ستون در جدول نمايش می دهد .

  • با اين که DataGrid اين امکان را در اختيار پياده کنندگان قرار می دهد که بتوانند فرمت نمايش يک ستون خاص را با سليقه خود مشخص نمايند ( با استفاده از  <asp:TemplateColumn> ) ، ولی کنترل فوق همچنان دارای محدوديت نمايش هر رکورد DataSource در يک سطر جدول HTML  است .

  • صرفنظر از محدوديت اشاره شده ، کنترل فوق با توجه به ويژگی های متعددی که در اختيار طراحان و پياده کنندگان قرار می دهد ، يکی از رايج ترين کنترل های موجود به منظور نمايش داده است .  مثلا"  با نوشتن کد اندکی  امکان مرتب سازی ، Paging و ويرايش داده ها  فراهم می گردد .

کنترل DataList  :

  • کنترل DataList به منظور نمايش داده هائی که دارای layout سفارشی شده بالائی می باشند ، توصيه شده است .

  • کنترل  DataList  به صورت پيش فرض داده خود را در يک جدول HTML نمايش می دهد .

  • با استفاده از مقداری که به خصلت RepeateColumns  نسبت داده می شود ، می توان تعداد رکورد DataSource به منظور نمايش در هر سطر جدول HTML را مشخص نمود ( بر خلاف DataGrid ) . مثلا" کد زير  امکان نمايش دو  رکورد DataSource را در هر سطر جدول HTML فراهم می نمايد .

<asp:DataList runat="server" id="SrcoDataList1"
   ...
RepeatColumns="2">
 
  <ItemTemplate>
     <b>عنوان مقاله:</b><br />
      <%# DataBinder.Eval(Container.DataItem, "ArticlesName") %>
       <p>
       <b>شرح</b><br />
       <%# DataBinder.Eval(Container.DataItem, "ArticlesDescription") %>
  </ItemTemplate>

</asp:DataList>

  • همانگونه که در کد فوق مشاهده می گردد ، DataList از تعدادی تمپليت تشکيل می گردد . تمپليت ها می توانند شامل ترکيبی از تگ های HTML و عبارات نسبت دهی داده باشند ( همانگونه که در ItemTemplate نشان داده شده است  ) . عبارات نسبت دهی ، عباراتی هستند که محدوده آنان توسط علامت <% ...#%> مشخص شده و شامل کدهائی می باشند که همزمان با فراخوانی متد DataBind مربوط به DataListIItem ،  اجراء خواهند شد . ItemTemplate ، تمپليتی را مشخص می نمايد که توسط هر يک از رکوردهای  DataSource  استفاده خواهد شد . کنترل DataList دارای  تمپليت های متعددی است : 
    AlternatingItemTemplate  : در صورتی که مشخص گردد، هر رکورد DataSource از اين تمپليت در مقابل تمپليت ItemTemplate استفاده می نمايد( يکی در ميان ) . 
    EditItemTemplate : تمپيلتی است که از آن در مواردی که يک سطر DataList در  "وضعيت ويرايش " است ، استفاده می گردد .
    HeaderTemplate : تمپليتی است که از آن به منظور نمايش عنوان DataList استفاده می گردد( درصورتی که خصلت ShowHeader مقدار True را دارا باشد ).
    FooterTemplate : تمپيلتی است که از آن به منظور نمايش footer يک DataList استفاده می گردد ( درصورتی که خصلت Showfooter  مقدار True را دارا باشد ) .
    Separator Template  : در صورت تعريف ، پس از نمايش هر يک از آيتم های موجود در DataList از آن استفاده می گردد ( جداکننده هر يک از رکوردها ) .

  • DataList قادر به انجام عمليات مرتب سازی ، paging و ويرايش داده ها نيز می باشد. اين کنترل به منظور انجام عمليات فوق،  نيازمتد برنامه نويسی بمراتب بيشتری نسبت به DataGrid است. بنابراين در صورتی که به هر يک از موارد اشاره شده نياز داشته باشيم ، DataGrid گزينه مناسبتری در اين رابطه خواهد بود.  در صورت  عدم نياز به پتانسيل های  اشارشده و تمايل به اعمال کنترل بيشتردر رابطه با نحوه نمايش داده ها ( formatting) ، استفاده از کنترل DataList توصيه می گردد .

کنترل Repeater :

  • کنترل Repeater بر خلاف کنترل های DataList و DataGrid از کلاس WebControl مشتق نشده است . بنابراين دارای خصلت هائی نظير Font، ForeColor، BackColor و  BorderStyle  نمی باشد ( معروف به خصلت های  stylistic ) .

  • کنترل Repeater همانند کنترل DataList ، صرفا" از تمپليت ها حمايت نموده و دارای زيرمجموعه ای از تمامی تمپليت های قابل استفاده در يک DataList است  . از  تمپليت های زير می توان به همراه Repeater استفاده نمود :
    AlternatingItemTemplate
    ItemTemplate 
    HeaderTemplate
    FooterTemplate
    SeparatorTemplate

  • کنترل Repeater حداکثر انعطاف لازم در خصوص توليد HTML را ارائه می نمايد . در حالی که کنترل DataGrid محتويات DataSource را در قالب  يک جدول HTML  و DataList در قالب يک جدول HTML و يا تگ های SPAN  ، ارائه می نمايند  ( متناسب با خصلت RepeateLayout مربوط به کنترل Repeater ) ، کنترل Repeater هيچگونه محتوای HTML را اضافه نمی نمايد، مگر اين که با صراحت  آنان را  در تمپيلت ها مشخص نمود .

  • Repeater يک کنترل مناسب به منظور نمايش داده درون يک ساختار مبتنی بر HTML خاص است ( مثلا" يک Unsorted List  ) . همانگونه که در کد پائين مشاهده می گردد ، نمايش داده های موجود در يک بانک اطلاعاتی توسط  يک Unsorted List با استفاده از يک Repeater بمراتب راحت تر از ساير کنترل های داده  است :  اضافه نمودن تگ <UL> به HeaderTemplate و تگ < UL/>  به بخش FooterTemplate و تگ <li> به همراه فيلد DataSource مورد نظری است که قصد نمايش آن را در ItemTemplate  داريم .
     

<asp:Repeater runat="server" id="SrcoRepeater">

  <HeaderTemplate>
     <ul>
   </HeaderTemplate>

  <ItemTemplate>
      <li>
      <Font face="Tahoma">
         <%# DataBinder.Eval(Container.DataItem, "ArticlesName") %>
      </Font>
      </il>
  </ItemTemplate>

  <FooterTemplate>
     </ul>
  </FooterTemplate>

</asp:Repeater>

  • در مواردی  که قصد نمايش داده را با يک فرمت خاص ( غير از يک جدول HTML ) داشته باشيم، استفاده از کنترل  Repeater توصيه می گردد .

  • کنترل Repeater دارای  امکانات از قبل تعبيه شده ای به منظور انجام عملياتی نظير مرتب سازی ، ويرايش و يا Paging داده ، نمی باشد . در صورت ضرورت،  می بايست پتانسيل های فوق از طريق برنامه نويسی به آن اضافه گردد .

 

 خلاصه

در دو مقاله ای که ارائه گرديد به نقاط مشترک و تفاوت بين سه کنترل داده  DataGrid، DataList و Repeater اشاره گرديد . مهمترين نقطه مشترک بين سه کنترل فوق ، نحوه حرکت در بين يک DataSource  و  ايجاد يک مجموعه از DataWebControlNameItems است . علاوه برموارد فوق ، کنترل های فوق از سه رويداد مشابه  ItemCreated ItemDataBound, ItemCommand  نيز استفاده می نمايند .
هر يک از کنترل های فوق دارای نقاط قوت و محدوديت های مختص به خود می باشند : 

  • DataGrid يک گزينه بسيار مناسب برای نمايش سريع و ساده داده های موجود در يک بانک اطلاعاتی و در يک جدول با فرمت HTML است . کنترل فوق دارای امکانات پيشرفته ای نظير Paging ، مرتب سازی و ويرايش داده ها است .DataGrid دارای محدوديت  اندکی در رابطه با  فرمت عمومی ارائه داده است . 

  • DataList دارای آزادی عمل بيشتری است . مثلا" همانگونه که مشاهده گرديد، با استفاده از خصلت RepeateColumns می توان چندين رکورد DataSource را در يک سطر جدول HTML نمايش داد . کنترل فوق به منظور نمايش محتوای مورد نظر از تمپليت ها استفاده می نمايد . تمپليت ها دارای پتانسيل بالائی به منظور سفارشی نمودن نحوه ارائه خروجی می باشند .

  • Repeater دارای کارآئی مطلوبی در خصوص نحوه ارائه خروجی است  . تگ های HTML تفسير شده در کنترل Repeater ماحصل تگ های HTML توليد شده در تمپليت های مربوط به کنترل می باشد . بنابراين ما شاهد توليد HTML اضافه ای نخواهيم بود ( اين وضعيت در کنترل های DataGrid و DataList وجود دارد ) . کنترل  Repeater دارای امکانات از قبل تعبيه شده ای به منظور انجام عملياتی  نظير paging ، مرتب سازی و ويرايش داده  نمی باشد .  

برگرفته از سايت  http://www.4guysfromrolla.com 

 



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382