ایمان نکونام : وب مهراز - جامعه برنامه نویسان

شروع کار با ASP.NET :: ( قسمت شانزدهم : آشنایی با DataList و Repeater )

در قسمت های قبلی این سری مقالات با کنترل GridView آشنا شدیم ، در این مقاله شما را با کنترل های DataList ، Repeater آشنا خواهم کرد .

این دو کنترل از جهاتی بسیار شبیه GridView هستند و از جهات دیگر کاملا متفاوت ، این دو کنترل بخش Edit Columns ندارند یعنی نمیتوانید ستون های مختلف برای آنها تعریف نمایید ، نحوه عمل کرد این دو کنترل مانند یک TemplateField در گریدویو می باشد یعنی فقط شما قادر هستید از طریق Eval کنترل های مورد نظر را داخل آنها بایند نمایید .

DataList یک خاصیت مهم به نام RepeatColumns دارد که شمارا قادر می سازد که اطلاعات را به صورت چند ستونی نمایش دهید ، این خاصیت در ساخت یک گالری تصویر ، یک فروشگاه و... کاربر بسیاری دارد

برای ساخت صفحه مشابه تصویر فوق کافیست ابتدا DataList را همانند GridView بایند کرده سپس خاصیت RepeatColumns را برابر 4 ست کنید تا اطلاعات در 4 ستون تکرار شوند ، سپس روی DataList کلیک راست کرده گزینه EditTemplate و سپس Item Template را برگزینید ، سپس یک کنترل Image قرار داده و آن را بایند کنید (در مقالات قبل این کار در GridView انجام شده بود)

به عنوان تمرین یک گالری تصاویر به کمک DataList ایجاد کنید (این کار نیاز به ساخت جدول جدید در بانک اطلاعاتی ، ایجاد فرم درج اطلاعات و... نیز دارد)

Repeater کنترل بسیار ساده ای است و نسبت به GridView کدهای کمتری تولید می کند بنابراین از نظر سرعت بارگزاری بسیار سریع لود می شود ، البته کار کردن با Repeater کمی مشکل تر است چرا که بخشی به نام EditTemplate ندارد ، برای این کار باید وارد قسمت Source شده و تگ ItemTemplate را به صورت دستی به Repeater اضافه نماییم سپس کنترل های مورد نظر را نیز به صورت دستی اضافه کرده و آنها را به صورت زیر بایند کنیم :



<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <asp:Label runat="server" ID="lbl" Text='<%# Eval("Title") %>'></asp:Label>
    </ItemTemplate>
</asp:Repeater>

همانطور که ملاحظه می کنید اول تگ ItemTemplate را اضافه کردم و سپس یک Label داخل آن قرار داده و آنرا بایند کردم .

همانطور که ملاحظه می کنید Eval را در بین <%   #%> قرار دادیم ، در حقیقت اگر پس از بایند کردن GridView یا DataList به بخش Source مراجعه کنید خواهید دید که Eval که شما نوشتید داخل این بلاک قرار گرفته است ،  این بلاک به سرور می گوید که این اطلاعات باید از سمت سرور خوانده شود و یک متن عادی نیست .

Repeater اطلاعات را بر خلاف DataList و Gridview بدون هیچ تگ اضافه تولید می کند بنابراین برای مرتب سازی و صفحه آرایی خودتان باید از Table و... داخل آن استفاده کنید

برنامه نویسان حرفه ای معمولا از Repeater جهت انجام کارهای خود استفاده می کنند چرا که هم سبک تر است و هم انعطاف پذیری بیشتری دارد

کنترل های دیگری مانند FormView و DetailsView نیز وجود دارند که از نظر بنده کاملا زائد هستند چرا که GridView میتواند کار این دو کنترل را نیز انجام دهد .

در ASP.NET 4 کنترل جدید به نام ListView نیز اضافه شده که بسیار قدرتمند و انعطاف پذیر است ، در مورد این کنترل در مقالات آتی بحث خواهیم کرد .


توجه : این مقالات برگرفته از  وبسایت شخصی علی دلشاد می باشد .

تعداد بازدید : 503
ارسال به دوستان

ارسال