PDA

View Full Version : سوال: عدم set شدن مقدار SelectedValue در کنترل DropDownList



YourWorldToday
یک شنبه 20 اردیبهشت 1388, 18:34 عصر
من تو فرم برنامه دو تا DropDownzList دارم که یکی مربوط به نام استان هاست و دیگر برای نمایش نام شهرستان است.
من DropDownList شهرستان رو درون یه UpdatePanel قرار دادم. زمانی که یک استان رو انتخاب می کنم شهرستان ها او استان در DropdownList نمایش داده میشه.

حال زمانی که من در PageLoad به DropDownList استان ها مستقم مقدار Value رو میدم شهرستان ها رو در DropDownList نمایش میده اما همین که کد شهرستان رو به مقدار Value میدم فقط اولین شهری که مربوط به استان هستش انتخاب میشه. برای مثال

کد 9 مربوط به استان خراسان رضوی


DdlState.SelectedValue=9


کد 45 شهرستان مشهد
کد 46 شهرستان نیشابور
کد 47 شهرستان سبزوار
کد 48 شهرستان گناباد



City.SelectedValue=48


با این حال مشهد انتخاب میشه.
ممنون میشم راهنمایی کنید .
با تشکر

ali.akhbary
دوشنبه 21 اردیبهشت 1388, 10:17 صبح
باید در page load وقتی اینطوری دهی کنی.
if(!page.ispostback())
{حالا مقدار دهی اولیه رو انجام بده.
}

Coward
دوشنبه 21 اردیبهشت 1388, 11:12 صبح
دوست عزیز یکم سوالتون برای من گنگ
یکم بیشتر توضیح بده این استان و شهرهاتو دستی میدی یا از دیتابیس می خوانی
اگر کدتم بگذاری خیلی راحتر کمکتون میشه کرد

YourWorldToday
دوشنبه 21 اردیبهشت 1388, 12:49 عصر
باید در page load وقتی اینطوری دهی کنی.
if(!page.ispostback())
{حالا مقدار دهی اولیه رو انجام بده.
}

من قبل این دستور رو استفاده کردم ولی کار نمی کنه



یکم بیشتر توضیح بده این استان و شهرهاتو دستی میدی یا از دیتابیس می خوانی


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


DdlState.SelectedValue = objDataTable.Rows[0]["StateID"].ToString();
if (!IsPostBack)
DdlCities.SelectedValue = objDataTable.Rows[0]["CityID"].ToString();

Coward
دوشنبه 21 اردیبهشت 1388, 15:24 عصر
این کد که اشتباه کلا البته اگر درست متوجه شده باشم
بارها از این کد ها نوشتم خیلی ساده است البته اگر کلاسهات و متد هاتو میدیدم بهتر می توانستم کمک کنم
ولی روش کلیش اینه که شما DropDownList اولتون را به صورت معمولی پر کنید یعنی همان خصوصیات ObjectDatasource را پر کرده و در IsPostBack هم متد Databind را فرا خوانی کنی سپس توی change ,event, DropDownList اولی به ObjectDatasource دومی پارامتر های لازم متد کلاس مورد نظر DropDownList را پاس بدی و دوباره Databind کنی

YourWorldToday
دوشنبه 21 اردیبهشت 1388, 19:44 عصر
خیلی ممنون از راهنمایی که کردید
با قرار دادن یه DdlState.DataBind(); بعد از استان ها مشکل حل شد.


DdlState.SelectedValue = objDataTable.Rows[0]["StateID"].ToString();
DdlState.DataBind();
DdlCities.SelectedValue = objDataTable.Rows[0]["CityID"].ToString();

با تشکر مجدد

AhoO-sh
چهارشنبه 14 بهمن 1388, 17:31 عصر
سلام دوستان
لطفا منم کمک کنید

من یه مقداری با Session نگه داشتم که محتویاتش برابر مقدار گرفته شده از یه Dropdown list است .
حالا میخوام در صفحه دیگه همون Dropdown list که از پایگاه داده پر شده مقدار پیش فرض و انتخابیش اون مقدار توی Session باشد
که من وقتی این جوری مینویسم

ddlTypePro.SelectedValue = Session["TypePro"].ToString();خطای زیر رو میگیره


'ddlTypePro' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value البته اینم بگم که من میخوام مقدار 3 تا Dropdown list که پشت سر هم هستن و به هم وابسته رو اینجوری مشخص کنم


خواهش میکنم راهنمایی کنید :گریه:

imanasp
چهارشنبه 14 بهمن 1388, 22:35 عصر
سلام دوستان
لطفا منم کمک کنید

من یه مقداری با Session نگه داشتم که محتویاتش برابر مقدار گرفته شده از یه Dropdown list است .
حالا میخوام در صفحه دیگه همون Dropdown list که از پایگاه داده پر شده مقدار پیش فرض و انتخابیش اون مقدار توی Session باشد
که من وقتی این جوری مینویسم

ddlTypePro.SelectedValue = Session["TypePro"].ToString();خطای زیر رو میگیره


'ddlTypePro' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value البته اینم بگم که من میخوام مقدار 3 تا Dropdown list که پشت سر هم هستن و به هم وابسته رو اینجوری مشخص کنم


خواهش میکنم راهنمایی کنید :گریه:

اشتباه نوشتی
این رو بنویس:



ddlTypePro.SelectedItem.Text = Session["TypePro"].ToString();در ضمن باید از دو سشن استفاده کنی یکی برای value و یکی برای text انتخاب شده dropdownlist

AhoO-sh
پنج شنبه 15 بهمن 1388, 08:46 صبح
وقتی اونو نوشتم خطای زیر رو میگیره

Object reference not set to an instance of an object




من برای value هم اینجور نوشتم


ddlTypePro.SelectedValue =Convert.ToInt32(Session["TypeProID"]);

که باز خطای Compilation Error از این خط میگیره :ناراحت:

لطفا کمک کنید

imanasp
پنج شنبه 15 بهمن 1388, 09:13 صبح
وقتی اونو نوشتم خطای زیر رو میگیره

Object reference not set to an instance of an object




من برای value هم اینجور نوشتم


ddlTypePro.SelectedValue =Convert.ToInt32(Session["TypeProID"]);که باز خطای Compilation Error از این خط میگیره :ناراحت:

لطفا کمک کنید


ddlTypepro.DataValueField=Convert.ToInt32(Session["TypeProID"])و
ddlTypepro.DataTextField =(Session["text"]).tostring()

AhoO-sh
پنج شنبه 15 بهمن 1388, 09:39 صبح
از خط

ddlTypePro.DataTextField = (Session["TypePro"].ToString());
خطای اینو میگیره

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'کالاهای توکار'

و از خط

ddlTypePro.DataValueField = Convert.ToInt32(Session["TypeProID"]);

خطای
Compilation Error میگیره