PDA

View Full Version : آموزش: خطا در ایجاد یوزر کنترل به صورت داینامیک ERROR IN dynamic user control asp.net



SA_SA_1980
دوشنبه 23 مرداد 1391, 23:24 عصر
تا حالا با این خطا مواجه شدید
An error has occurred because a control with id could not be located or a different control is assigned to the same ID after postback If the ID is not assigned explicitly set the ID property of controls that raise postback events to avoid this error

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

ID
کنترلهایی که به سرور ارسال می گردد یکسان است و سرور جهت جلوگیری از حادثه اتفاقی صفحه رو مسدود می کنه


راه حل :

اون چیزی که من متوجه شدم این بوده که اگه به هر کنترل یک آیدی منحصر به فرد بدید کارتون درست می شه
البته از ISPOSTBACK و چک کردن اون هم می تونید استفاده کنید اما
کنترلها فقط یک بار در صفحه شما آن هم هنگامی که صفحه برای بار اول صدا زده می شه ایجاد می شن حالا فرض کنید یکی از کنترلها یک کلید باشه با کلیک بر روی اون کنترل چون پست بک اون چک می شه برای بار دوم هنگام نمایش نتیجه پردازش کلیک بر روی کلید دیگه هیچکنترل داینامیکی ساخته نمی شه و این یعنی دردسر


خیلی از پیجهی لاتین رو من مرور کردم اما تنها جواب ساختن ID منحصر به فرد برا هر کنترل هستش

چجوری این ID رو بسازیم

مثلا اینجوری:


int cunter_USER_CONTROL = 0;
string S = Session["USER_ID"].ToString() + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + cunter_USER_CONTROL.ToString();




while (rdr2.Read())
}
cunter_USER_CONTROL++;
S = S + cunter_USER_CONTROL.ToString();



ImageButton user_image = new ImageButton();
user_image.ID = "user_image" + S;
user_image.Width = 50;
user_image.Height = 50;
user_image.ImageUrl = rdr2["profile_pic_address"].ToString();

{



پیروز باشید SA_PROJECT@YAHOO.COM
ساسان قهرمانی