PDA

View Full Version : سوال: مشکل با dropdownlist(دوستان محترم خواهش می کنم کمکم کنید)



minamorsali
یک شنبه 11 مرداد 1388, 00:00 صبح
سلام
من قبل از ارسال تاپیک خیلی گشتم ، یه مورد مشابه در رابطه با dropdownlist پیدا کردم. اما بهم کمک نکرد.
من یه صفحه دارم که به وسیله گرید ویوو اطلاعات یه جدولم توش نشون داده میشه.
در این گرید ویوو من یه hyper link دارم که با navigate زیر وارد صفحه ویرایش میشم.

defult.aspx?text="id"

تا اینجا همه چیز درسته. در صفحه ویرایش من بر اساس id که از پیج قبل گرفتم یه select می زنم و اطلاعاتم رو درون فیلدهام می ریزم.
اما من یه سری dropdownlist دارم که اطلاعاتش از یه جدول دومی میاد و به یه sqldatasource بایند شده. یه نمونه از این کنترلم:



<asp:DropDownListID="ddlUniversity"runat="server"DataSourceID="sdsUniversity"
DataTextField="UniversityName"DataValueField="UniversityCode">
</asp:DropDownList><asp:SqlDataSourceID="sdsUniversity"runat="server"ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [UniversityName] FROM [University] ORDER BY [UniversityName]">
</asp:SqlDataSource>


حالا من توی رویداد لود این صفحه ام برای اینکه سطر مورد نظر از جدولم که در حال حاضر در پایگاه داده ذخیره شده رو در selectedvalue این کنترلم قرار بدم این کد رو می نویسم:



int University_fk = Convert.ToInt32(dt.Rows[0]["UniversityID_fk"].ToString());
ddlUniversity.SelectedValue = University_fk.ToString();


که dt همون نتیجه selectام هست که چون بر اساس فیلد کلید سلکت زدم فقط یه سطر داره.

اما در زمان اجرا وقتی وارد صفحه ویرایش میشه، ارور زمان اجرا میده:ناراحت: روی خط int University...:
Input string was not in a correct format.


خواهش می کنم کمکم کنید و اگه بلدید جواب سوالمو بدید، ممنون.

afrooz_rahmati63@yahoo.com
یک شنبه 11 مرداد 1388, 00:12 صبح
اگر یک debug بزارید روی خط int University_fk = Convert.ToInt32(dt.Rows[0]["UniversityID_fk"].ToString());

احتمالا می بینید که University_fk مقدار null داره یعنی dt ممكن bind نشده باشه ..قبل از load چک کنید dt بايند شده باشه.

minamorsali
یک شنبه 11 مرداد 1388, 00:24 صبح
سلام
dt بایند شده. چون وقتی کدهای مربوط به dropdownlistهامو غیرفعال می کنم، فیلدهای تکس باکس رو می بینم که از داده های مربوطه پر شدند. بنابراین مطمئنم که dt ایم null نیست.

afrooz_rahmati63@yahoo.com
یک شنبه 11 مرداد 1388, 00:37 صبح
خوب ببینید این چه مقداری را برمی گردونه : University_fk.ToString();
يا ممكن هست dt بايند می شه اما بعد از عبور از این خط کد ...یک راه ساده


textbox1.Text = University_fk.ToString();
]
اينجوري تست كنيى ببينين مقدار می گیره یا نه؟
اگر گرفت معلوم می شه که مقداری که برگردانده میشه جز مقادیری که dropdown شما داره نیست.

behnam-s
یک شنبه 11 مرداد 1388, 01:09 صبح
سلام
به جاي رویداد لود صفحه از رویداد
PreRender
استفاده کنید احتمال بسیار با لا مشکلتون حل می شه

minamorsali
یک شنبه 11 مرداد 1388, 08:54 صبح
سلام
این رویداد چه موقع اجرا میشه؟

minamorsali
یک شنبه 11 مرداد 1388, 10:20 صبح
سلام
یعنی کسی نیست که بتونه منو کمک کنه ؟

farnooshhp
یک شنبه 11 مرداد 1388, 10:34 صبح
دوست عزیز به صورت مستقیم مقدار دهی کنید :


ddlUniversity.SelectedValue = dt.Rows[0]["UniversityID_fk"].ToString()

برای من که جواب داد امیدوارم برای شما هم جواب بده

behnam-s
یک شنبه 11 مرداد 1388, 12:40 عصر
سلام
این رویداد چه موقع اجرا میشه؟
رویداد prerender بعد از load ،وقتی که همه کنترلها مقدار اولیه خودشون رو گرفتن اجرا میشه

minamorsali
یک شنبه 11 مرداد 1388, 13:43 عصر
سلام
ممنون از دوستان
مشکلم حل شد.
trace که کردم دیدم ایراد اینجاست که این متغیر null است. وقتی داده های بانکم رو چک کردم دیدم که فقط این فیلد مقدارش در بانک null است.
با تشکر

afrooz_rahmati63@yahoo.com
یک شنبه 11 مرداد 1388, 19:59 عصر
من كه همون اول به شما گفتم مقدارش null هست .