PDA

View Full Version : قرار دادن یک متن در dropdownlist



SAMARE
شنبه 09 آبان 1388, 09:16 صبح
سلام دوستان عزیز
من میخوام یک متن در dropdownlist بنویسم بطوریکه با اون مثل یک item برخورد نشه
منظورم اینه که یک متن بصورت پیش فرض برای dropdown قرار بدم که بعنوان هدر اون باشه
متنی مانند : انتخاب کنید ...

ممنون میشم کمکم کنید

Chabok
شنبه 09 آبان 1388, 12:31 عصر
با سلام

در یک تگ select که در ASP.NET همون dropdown است میشه توسط تگ optgroup یک Header برای آیتم ها ایجاد کرد ، بصورتی که قابل انتخاب شدن نیست .



<select name="f">
<optgroup label="فضای سایت">
<option value="cp">پرونده و تنظیمات کاربر</option>
<option value="pm">پیام های خصوصی</option>
</optgroup>
<optgroup label="تالارها">
<option value="13">اخبار و اعلانات</option>
<option value="46">اعلانات سایت</option>
</optgroup>
</select>
خروجی حاصل از کد فوق بدین صورت می شود :
39113

ولی این نکته قابل ذکره که این Header اصلاً قابل انتخاب نیست و حتی به عنوان آیتم اول نیز نمیشه ازش استفاده کرد .

نمونه اون در زیر صفحات همین سایت قابل مشاهده است که مثال نیز از همین قسمت آورده شد .

موفق باشید .

yekta64
شنبه 09 آبان 1388, 12:49 عصر
سلام مرسی
ولی من اگه بخوام یه هدر برای drowpdown بذارم این تگ select رو باید کجا قرار بدم؟

Chabok
شنبه 09 آبان 1388, 13:12 عصر
با سلام

در ASP.NET شما به سادگی نمیتونید چنین کاری رو با Dropdown انجام بدین .

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

برای انجام این کار در ASP.NET باید نحوه رندر کردن کنترل را خودتون بدست بگیرید
توسط override کردن RenderContents که در مقاله زیر توضیح داده شده

DropDownList with optgroup
http://weblogs.ASP.NET/jeff/archive/2006/12/27/dropdownlist-with-optgroup.aspx (http://weblogs.ASP.NET/jeff/archive/2006/12/27/dropdownlist-with-optgroup.aspx)

که من خودم شخصاً ترجیح میدم در صورت نیاز به چنین حالتی تگ ها رو خودم تولید کنم تا اینکه از خود کنترل dropdown استفاده کنم و چنین دردسر هایی رو ایجاد کنم .

موفق باشید .