سلام کاربران عزیز ، حالتون خوبه ؟ با اموزشی دیگر در زمینه Asp در خدمت شما هستم.درمورد نمایش عکس به صورت تصادفی میخوام توضیح بدم. با ما همراه باشید.
کنترل AdRotator به منظور نمایش عکس به صورت رندم و تصادفی بکار گرفته می رود. تصویری که به نمایش گذاشته می شود توسط کنترل AdRotator از مجموعه ای از تصاویر که از پیش توسط کاربر معین شده ، به صورت تصادفی گزنیش شده و نمایش داده می شود. می توان برای هر عکس ، یک  url مقصد تعیین کرد تا کاربر به هنگام کلیک بر روی آن، به url  گفته شده برگشت داده شود. اطلاعات تصاویر و url ها در یک منبع داده ای (data source) مانند یک فایل XML یا بانک اطلاعاتی SQL ذخیره می گرددند. کنترل حین اجرای صفحه اطلاعات را از منبع داده مربوط به خود خوانده و اجرا می کند.

کنترل عمدتا جهت نمایش بنرهای تبلیغاتی بکار می رود. هر بار که صفحه بازسازی یا تجدید (refresh) می شود ، کنترل مزبور انتخاب تصادفی بنر را انجام داده و یک بنر جدید را به نمایش می گذارد.
همچنین می توان تعیین کرد کدام تصاویر برای نمایش در اولویت قرار گیرند و یا اینکه کدام عکس ها بیشتر از سایر عکس ها نشان داده شوند.

دستور نگارش کلی کنترل AdRotator به صورت زیر می باشد.

‎‎<asp:adrotator runat=”server” advertisementfile=”adfile.xml” target=”_blank”/>

پیش از اینکه به جزئیات کنترل AdRotator و خواص (property) آن بپردازیم، بهتر است نگاهی مختصر بر ساختار فایل Advertisement داشته باشیم.

Advertisement File

فایل Advertisement یک فایل XML است که دربردارنده ی اطلاعات مربوط به تبلیغاتی است که باید در کنترل نمایش داده شوند.

زبان نشانه گذاری توسعه پذیر ( Extensible Markup Language یا به اختصار XML ) یک استاندارد W3C برای نشانه گذاری فایل های متنی (text document markup) می باشد. XML در واقع یک زبان نشانه گذاری مبتنی بر متن است که به شما امکان می دهد داده ها را با استفاده از تگ های معنی دار در قالبی ساخت یافته (structured format) ذخیره کنید. واژه ی ‘extensible’  یا به فارسی ‘گسترش پذیر’ دلالت بر این قضیه دارد که برنامه نویس می تواند با تعریف تگ های معنی دار برای برنامه  قابلیت و توان خود را در توصیف هر چه بهتر سند افزایش دهد.

XMLبه خودی خود یک زبان نیست، بلکه یک مجموعه قوانینی برای ایجاد زبان های نشانه گذاری (markup) نوین محسوب می شود. در حقیقت xml یک زبان  meta-markup(علاوه بر این که یک markup یا زبان علامت گذاری می باشد، اطلاعاتی هم درباره ی نحوه ی تشکیل شدن و ساخت یافتن آن markup ارائه داده و به برنامه نویس امکان می دهد تگ های نشانه گذاری / markup tag های خود را برای تعریف آن ایجاد کند) تلقی می گردد.

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

ذیل نمونه ای از فایل XML را مشاهده می کنید.

<book>

‎   <name> Learn XML </name>‎

‎   <author> Samuel Peterson </author>‎

‎   <publisher> NSS Publications </publisher>‎

‎   <price> $30.00</price>‎

<book>‎

مشابه دیگر فایل های XML، فایل advertisement باید یک فایل متنی ساخت یافته با تگ های درست تعریف شده باشد که داده ها را به نحو احسنت تعریف کند. جدول زیر عناصر استاندارد XML که به طور متداول در فایل های advertisement بکار می روند را فهرست می کند.

المان

شرح

Advertisements

این عنصر فایل advertisement را ضمیه می کند(دربرمی گیرد).

Ad

یک  ad(تبلیغ) جدید تعریف می کند.

ImageUrl

آدرس  URLیا محل قرارگیری تصویر مورد نظر  (تصویر نمایش داده شده) را ارائه داده و مشخص می کند.

NavigateUrl

لینکی که کاربر با کلیک روی تبلیغ (ad) به آن ارجاع داده می شود.

AlternateText

نوشته ای که در صورت عدم امکان نمایش تصویر به عنوان جایگزین (تصویر) نمایش داده می شود.

Keyword

کلیدواژه ای که مجموعه ای از تبلیغات (ad) را شناسایی می کند. این عنصر بیشتر به منظور فیتلر کردن استفاده می شود.

Impressions

عددی که تعیین می کند یک تبلیغ چند بار باید نمایش داده شود.

Height

طول تصویر نمایش داده شده را تعیین می کند.

Width

.عرض تصویر نمایش داده شده را تعیین می کند

جدا از تگ های نام برده می توان تگ های (سفارشی) که خصیصه های (attribute) سفارشی برای آن ها تعریف شده بکار برد. کد زیر یک فایل advertisement (ads.xml) را نمایش می دهد.

<Advertisements>

<Ad>

<ImageUrl>2012123118419.png</ImageUrl>

<NavigateUrl>http://www.1800flowers.com</NavigateUrl>

<AlternateText>

Order flowers, roses, gifts and more

</AlternateText>

<Impressions>20</Impressions>

<Keyword>flowers</Keyword>

</Ad>

<Ad>

<ImageUrl>2014102317530.jpg</ImageUrl>

<NavigateUrl>http://www.babybouquets.com.au</NavigateUrl>

<AlternateText>Order roses and flowers</AlternateText>

<Impressions>20</Impressions>

<Keyword>gifts</Keyword>

</Ad>

<Ad>

<ImageUrl>2014123121431.jpg</ImageUrl>

<NavigateUrl>http://www.flowers2moscow.com</NavigateUrl>

<AlternateText>Send flowers to Russia</AlternateText>

<Impressions>20</Impressions>

<Keyword>russia</Keyword>

</Ad>

</Advertisements>

خاصیت

شرح

AdvertisementFile

محل قرارگیری (مسیر) فایل (دربردانده ی) advertisement را مشخص می کند.

AlternateTextFeild

اسم المان فیلد مورد نظر که متن جایگزین در آن ارائه می شود را مشخص می کند.مقدار پیش فرض آن  AlternateText می باشد.

DataMember

اسم لیست داده ای که در صورت استفاده نشدن از فایل advertisement به کنترل AdRotator متصل می شود را تعیین می کند.

DataSource

کنترلی که داده از آن بازیابی می شود را مشخص می کند.

DataSourceID

شناسه ی کنترلی که داده از آن بازیابی می شود.

Font

خاصیت های (property) فونت بکار رفته در کنترل بنر تبلیغاتی (ad banner) را مشخص می کند.

ImageUrlField

اسم المان فیلدی که آدرس URL تصویر مورد نظر را ارائه می دهد مشخص می کند. مقدار پیش فرض ImageUrl می باشد.

KeywordFilter

تنها به منظور نمایش تبلیغاتی (ad) که بر اساس کلیدواژه شناسایی می شوند بکار می رود.

NavigateUrlField

اسم المان فیلد دربردانده ی url که به آن پیمایش صورت می گیرد را ارائه می د هد. مقدار پیش فرض  NavigateUrl می باشد.

Target

مرورگر یا پنجره ی (frame) که محتوای صفحه لینک شده را نمایش می دهد مشخص می کند.

UniqueID

شناسه ی منحصر بفرد کنترل AdRotator را برمی گرداند.

خاصیت ها و رخدادهای کلاس AdRotator

همان طور که پیش تر ذکر شد کلاس AdRotator از کلاس WebControl مشتق شده و از این رو تمامی خاصیت های آن را به ارث می بر د. علاوه بر خاصیت های به ارث گرفته از کلاس مزبور، AdRotator  دارای خاصیت های زیر می باشد.

انچه ذیل مشاهده می کنید فهرستی از رخدادهای (event) مهم کلاس AdRotator می باشد.

رخداد

شرح

AdCreated

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

DataBinding

زمانی رخ می دهد که کنترل سرور به یک منبع داده متصل شود.

DataBound

این رخداد پس از اینکه که کنترل سرور به یک منبع داده متصل (bound) می شود روی می دهد.

Disposed

هنگامی رخ می دهد که کنترل سرور از حافظه رها سازی (release) شده باشد که در اصل آخرین مرحله ی چرخه حیات کنترل سرور محسوب می شود (منظور زمانی است که صفحه ی ASP.NET درخواست می شود).

Init

زمانی رخ می دهد که کنترل سرور مقداردهی اولیه شده باشد، که در اصل اولین مرحله چرخه ی حیات کنترل سرور محسوب می شود.

Load

هنگامی روی می دهد که کنترل سرور داخل شی Page بارگذاری شود.

PreRender

این رویداد پس از اینکه شی Control بارگذاری شده و پیش از rendering (اجرا و نمایش کنترل) فعال می شود.

Unload

زمانی رخ می دهد که کنترل سرور از حافظه unload (تخلیه ی بارگذاری) شود.

کار با کنترل AdRotator

یک صفحه ی جدید ایجاد کرده، سپس یک کنترل AdRotator به آن اضافه کنید.

<form id=”form1″ runat=”server”>

‎   <div>

‎      <asp:AdRotator ID=”AdRotator1″ runat=”server” AdvertisementFile=”~/ads.xml” ‎onadcreated=”AdRotator1_AdCreated” />‎

</div>‎

<form>‎

فایل ads.xml و فایل های تصویری (image file) همگی باید در پوشه ی اصلی (root directory) وب سایت قرار داده شوند.

حال برنامه ی بالا را اجرا کرده و دقت کنید که با هر بار بارگذاری دوباره صفحه، تبلیغ (ad) نیز تغییر می کند.