大家都知道酒酿蛋是非常传统的美胸食品产后丰胸产品,醪糟也叫酒酿,是由糯米或者大米经过酵母发酵而制成的一种风味食品,其产热量高,富含碳水化合物丰胸产品燕窝酒酿蛋、蛋白质、b族维生素、矿物质等,这些都是人体不可缺少的营养成分酒酿蛋丰胸方法。其中酒酿中含的醣化酵素,能促进乳房的二次发育,具有美胸的作用燕窝酒酿蛋丰胸
تفاوت بين DataList ، DataGrid و Repeater (بخش اول)
اين مطلب از طريق سايت شرکت سخاروش در اختيار شما گذاشته شده است .

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

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

ASP.NET دارای مزايای متعددی نسبت به ASP کلاسيک است . يکی از مزايای فوق ، ارائه کنترل های سرويس دهنده متعددی در ارتباط با داده ها است  که از  آنان با نام Data Web control و يا Display Data Server Control  ياد می شود . کنترل های فوق با هدف تسهيل در امر نمايش داده ها طراحی شده اند . مثلا" DataGrid يک کنترل ايده آل به منظور نمايش داده در يک جدول با فرمت HTML است . علاوه بر کنترل DataGrid از دو کنترل داده ديگر به اسامی DataList و Repeater  استفاده می گردد :

کنترل های فوق در موارد متعددی مشابه يکديگر می باشند . مثلا" گرامر استفاده شده به منظور نسبت دهی داده به کنترل ها ، وجود خصلت و رويدادهای مشابه نمونه هائی در اين زمينه می باشد . علیرغم وجود برخی شباهت ها بين کنترل های فوق  ، هر يک از آنان دارای مزايا و محدوديت های مختص به خود می باشند . برنامه نويسان برنامه های وب که از ASP.NET استفاده می نمايند و درگير طراحی و پياده سازی برنامه های وب با محوريت داده می باشند ، در زمان استفاده از کنترل های فوق دچار سردرگمی شده و همواره با اين پرسش مواجه هستند که کدام کنترل مناسب تر است ؟ انتخاب مناسب  يک کنترل داده به نوع عملياتی که قصد انجام آنان را در يک برنامه وب داريم ، بستگی خواهد داشت .
در اين مقاله قصد داريم به بررسی نقاط قوت و محدوديت های هر يک از کنترل های فوق پرداخته و حالات خاصی را بررسی نمائيم که جايگاه و ضرورت استفاده از کنترل مورد نظر را مشخص می نمايد . در ابتدا و در بخش اول اين مقاله به بررسی نقاط مشترک بين کنترل های داده وب خواهيم پرداخت و قدرمشترک بين آنان را مشخص می نمائيم .

نقاط مشترک بين کنترل های داده
مهمترين وجه اشتراک بين کنترل های DataGrid ، DataList و Repeater  ، استفاده از خصلتی با نام DataSource و يک متد با نام DataBind است . به منظور نسبت دهی داده به هر يک از کنترل های فوق از فرآيند مشابهی استفاده می گردد :

يکی ديگر از نقاط مشترک  بين کنترل های فوق ، بکارگيری تعداد مشخصی از DataWebControlNameItems  است . يک DataGrid  از تعدادی DataGridItems ، يک DataList  از تعدادی  DataListItems  و يک Repeater  از تعدادی  RepeaterItems  تشکيل می گردد . پس از فراخوانی متد DataBind ، در مجموعه رکوردهای موجود در DataSource حرکت نموده و برای هر يک از آنان يک نمونه جديد DataWebControlNameItem  ايجاد و به کنترل اضافه می گردد . پس از ايجاد يک نمونه DataWebControlNameItem  ، به خصلت DataItem آن  مقدار مربوط به رکورد جاری DataSource نسبت داده شده و متد DataBind مربوط به DataWebControlNameItem فراخوانده شده تا ستون ها ی مربوط به رکورد Datasource به DataWebControlNameItem نسبت داده می شوند . ( در اين رابطه تفاوت اندکی بين  سه کنترل اشاره شده وجود دارد که در ادامه به بررسی آنان خواهيم پرداخت ) . علاوه بر وجود شباهت های فوق ، کنترل های فوق از سه رويداد مشابه نيز استفاده می نمايند : 

بررسی عملی وجه اشتراک بين سه کنترل داده
به منظور بررسی نقاط مشترک بين هر يک از کنترل های اشاره شده يک مثال عملی را دنبال می نمائيم . در اين مثال قصد داريم محتويات  جدول Srcotable  بانک اطلاعاتی  SrcoTestDB.mdb را در خروجی نمايش دهيم . جدول فوق دارای سه  فيلد اطلاعاتی با نام ArticlesName ، ArticlesDescription  و ID است .

مرحله اول : ايجاد بانک اطلاعاتی SrcoTestDB.mdb و جدول Srcotable

مرحله دوم : ايجاد يک صفحه وب ASP.NET با نام TestWebDataControl.aspx  و  استفاده از کنترل DataGrid و مشخص نمودن فرمت مورد نظر برای نمايش داده های موجود در بانک اطلاعاتی 

<form runat="server" >

<asp:DataGrid id="SrcoGrid1" runat="server"
  
   AutoGenerateColumns="False"
   Font-Names="Tahoma"
   Font-Size="8pt"
   CellPadding="1"
   GridLines="Horizontal"
   BorderWidth="3"
   BackColor="#F0F0F0"
   ForeColor="Black"
   ShowFooter="True"
   HeaderStyle-BackColor="#707070"
   HeaderStyle-ForeColor="#FFFFFF"
   HeaderStyle-Font-Bold="True"
   HeaderStyle-HorizontalAlign="Center"
   AlternatingItemStyle-ForeColor="Navy"
   AlternatingItemStyle-BackColor="#CCCC99"
   FooterStyle-BackColor="#336699"
   FooterStyle-ForeColor="#FFFFFF"
   FooterStyle-HorizontalAlign="Left"
   FooterStyle-Font-Bold="True" >
 <Columns>
   <asp:BoundColumn
      DataField="ArticlesName"
      HeaderText="عنوان مقاله " />

    <asp:BoundColumn
       DataField="ArticlesDescription"
       HeaderText="شرح"
       ItemStyle-HorizontalAlign="Right"
       FooterText="تهيه شده در شرکت سخاروش"
      FooterStyle-Font-Size="8pt" />

</Columns>

</asp:DataGrid>
</form>

مرحله سوم : ايجاد  و نسبت دهی يک DataSet  از طريق Page_Laod

<%@ Import Namespace="System.Data.OleDb" %>

<SCRIPT runat="server">

Dim DBConnection As OleDbConnection
Dim DBCommand As OleDbCommand
Dim DBReader As OleDbDataReader
Dim SQLString As String

Sub Page_Load
  If Not Page.IsPostBack Then

   DBConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\InetPub\wwwRoot\SrcoTestDB.mdb")
     DBConnection.Open()
     SQLString = "SELECT * FROM Srcotable Order by id DESC "
     DBCommand = New OleDbCommand(SQLString, DBConnection)
     DBReader = DBCommand.ExecuteReader()
     SrcoGrid1.DataSource = DBReader
     SrcoGrid1.DataBind()
    DBReader.Close()
    DBConnection.Close()

  End If

End Sub

</SCRIPT>

مرحله چهارم :  پس از ذخيره کد فوق در فايل  TestWebDataControl.aspx و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت :  

توضيحات :
پس از فراخوانی متد DataBind ،  رکوردهای مربوط به DataSet نسبت داده شده به خصلت DataSource استخراج می گردند . در زمان حرکت در DataSet ، در حقيقت در بين مجموعه ای از سطرهای مربوط به DataTable پيش فرض DataSet حرکت می نمائيم . مجموعه Rows شامل تعدادی از نمونه های DataRow است که  برای هر يک از رکوردهائی که توسط يک SQL query خاص برگردانده شده است ، ايجاد می گردند . برای هر DataRow ، در ابتدا يک DataGridItem ايجاد می گردد.  در ادامه رويداد ItemCreated مربوط به  DataGrid  فعال می گردد . در مرحله بعد ، DataRow به  خصلت DataItem مربوط به DataGridItem نسبت داده می شود .در نهايت رويداد ItemDataBound مربوط به DataGrid فعال می شود . اين فرآيند برای تمامی DataRows تکرار خواهد شد .
فرآيند فوق در سه کنترل اشاره شده مشابه بوده و تنها تفاوت موجود در اين رابطه ، ايجاد يک  DataListItem ، در کنترل DataList و يک RepeaterItem  درکنترل Repeater می باشد ( در مقابل ايجاد يک DataGridItem ، در کنترل DataGrid ) .

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


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
http://www.srco.
ir