اضافه کردن ToolTip به آیتم‌های Dropdownlist

5 07 2009

تا بحال پیش نیامده بود که برای آیتم‌هایی که در یک DropDownList قرار دارند ToolTip بگذارم (‌یعنی نیازی نبود) بجز موارد اندکی که برای خود DropDownList یک ToolTip می‌گذاشتم.

—————————————————————-

این مطلب زیر نظر مجوز GFDL منتشر می‌شود. و کلیه حقوق آن برای همگان آزاد است، بدین شرط که به کلیه شرایط موجود در مجوز GFDL ( که یک نسخه از متن انگلیسی مجوز GFDL در این محل و یک ترجمه غیر رسمی (فارسی) از متن مجوز GFDL که در مرداد ۱۳۸۳ توسط کاوه رنجبر تهیه شده است در این محل ) قرار دارد پایبند باشد.

GNU Logo

GNU Logo

عنوان مطلب : اضافه کردن ToolTip به آیتم‌های Dropdownlist

بخش ثانی : ندارد

تاریخ انتشار : 14/04/1388 مطابق با 05/07/2009

شماره نسخه : نسخه یک

نویسنده : ناصر حاجلو

ای-میل نویسنده : n.hajloo@gmail.com

Copyright (c) 2009 Nasser Hajloo.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation;

with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

—————————————————————-

وقتی نیاز شد که برای آیتم‌ها بصورت جداگانه ToolTip بگذارم با مشکلات جالبی روبرو شدم. اول اینکه چون IE و سایر مرورگرها صرفا برای مواردی که روی لایه اول اجرا می شوند گزینه ToolTip را فراهم کرده ( یعنی فقط برای آنها ToolTip را نشان می دهد ) و چون DropDownList در لایه بالایی اجرا می شود ( برای امتحان کافی است که بدون هیچ تنظیم خاصی یک DropDownList را روی یک عکس بیاندازید ) لذا امکان قراردادن ToolTip برای آیتم‌های آن وجود ندارد.

یکی از راه حل ها این است که یک List با HTML ایجاد کنیم که هر آیتم را در یک Div قرار بدهیم و برای آنها یک Title (معادل htmlی ToolTip) قرار بدهیم. که این کار اصلا کار جالبی نیست.

راه حل دیگر آن است که بطور کل قید ToolTip برای هر آیتم را و دردسرهای بعد آن را بزنیم ( که در بعضی موارد امکان ندارد )

و اما راه حل نهایی آنکه، از آنجا که هر آیتم در HTML می تواند یک Title داشته باشد، بیاییم و برای هر آیتم یک خصوصیت Title را اضافه کنیم. که با متد زیر قابل انجام است. ( توجه کنید که نام DropDown در اینجا DropDownList1 است که جهت خوانایی بیشتر آورده شده.

for(int i=0; i<=DropDownList1.Items.Count-1; i++)

{

DropDownList1.Items[i].Attributes.Add(“Title”, DropDownList1.Items[i].Text);

}

پس از نوشتن کد بالا باید مجددا صفحه را refresh کنید که تغییرات اعمال شود.