PDA

View Full Version : سوال: تنظیم selectedIndex یک DropDownList پس از Binding



hogabr
جمعه 19 مهر 1387, 17:37 عصر
جستجو شد و یافت نشد.

فرض کنید شما یک جدول Product دارید که یکی از فیلدهای آن ProductCategoryId است.
شما می خواهید برای این موجودیت یک صفحه ویرایش طراحی کنید و ProductCategoryId نیز بوسیله یک DropDownList که از جدول ProductCategoy بایند می شود درون صفحه ویرایش محصول نمایش داده می شود.

حال وقتی می خواهید صفحه ویرایش و DropDownList مربوط به دسته بندی محصول را برای یک محصول لود کنید از چه مکانیزمی استفاده می کنید؟

بنده در رخداد PreRender صفحه این کد را می نویسیم ولی DropDownList به Index مربوطه تغییر پیدا نمی کند:


SqlDataSource1.DataBind();

ddl_ProductCategoryId.SelectedIndex = ddl_ProductCategoryId.Items.IndexOf(ddl_ProductCat egoryId.Items.FindByValue(q.Rows[0]["ProductCategoryId"].ToString()));



1- آیا مکانیزم استفاده شده درست است؟
2- آیا در مکان مناسبی این اعمال انجام شده است؟
3- آیا می توان در رخدادی این کار را انجام داد که نیاز به Binding نباشد و DropDownList قبلا bind شده باشد؟

merlin_vista
جمعه 19 مهر 1387, 17:41 عصر
از كد زير استفاده كن . ببين مشكل تو حل ميشه

ListItem lisitm= this.ddl_Cat.Items.FindByValue(CatID.ToString());
if (lisitm != null) { lisitm.Selected = true; }CatID ، همان ProductCategoryId هست كه بايد در ليست شما يافت شود و انتخاب شود .

راستي . ورودت را به جامعه برنامه نويسان تبريك ميگم

hogabr
جمعه 19 مهر 1387, 21:04 عصر
تشکر

مشکل حل شد.
میتونم بپرسم شما این کد را در کدام event استفاده می کنید؟ و آیا قبل از این کد binding انجام می دهید؟

nazaninam
شنبه 20 مهر 1387, 07:56 صبح
اگر از binding های آماده ObjectDataSource یا SQLDataSource استفاده می کنید کد های مربوط به تغییر Index را داخل رویداد DropDownlist_Load بنویسید .
در ضمن if not ispostback یادت نره !
موفق باشید