PDA

View Full Version : Ajax و لود كردن UserControl و جلوگيري از پاك شدن UserControl



amin_alexi
چهارشنبه 01 آبان 1387, 08:47 صبح
سلام
من يك UserControl رو به يك Panel اضافه مي كنم .(Panel داخل يك UpdatePanel آژاكس مي باشد)
نحوه اضافه كردن UserControl به Page


protected void Button4_Click(object sender, EventArgs e)
{
UserControl2 ctl = (UserControl2)LoadControl("~/UserControls/UserControl2.ascx");
ctl.ID = "ctl";
Panel1.Controls.Add(ctl);
}


كه با زدن باتن به فرم اضافه ميشه !
من داخل UserControl هم يك Button و Label رو روي يك UpdatePanel گذاشتم كه وقتي روي Button كليك مي كنم Button و Label غيب ميشه !
من مي خوام UserControl باقي بمونه و كاربر روي اون قسمت بتونه كار بكنه !

milade
چهارشنبه 01 آبان 1387, 14:08 عصر
عزیزم سلام
وقتی از اون کد استفاده می کنی خوب معلومه که پنلrefresh می شه و تمام محتویاتش پاک می شه برا همین شما باید تمام کنترل های داخل پنل رو به صورت همین پوزر کنترل اضافه کنید
موفق باشید

mahdi_farhani
چهارشنبه 01 آبان 1387, 15:30 عصر
دوست عزیز شما باید با هر Postback کنترلها رو لود کنی!!!!!!

ASP.NET2
جمعه 04 آذر 1390, 18:53 عصر
با سلام.
شاید لازم بود دوباره این تاپیک رو زنده کنم .
amin_alexi (http://barnamenevis.org/member.php?47928-amin_alexi) عزیر نمی دونم در این مورد به نتیجه رسیدی یا نه؟ من هم این مشکل رو دارم. تو این تاپیک (http://how2learnasp.net/article.aspx?code=924b4b24-cff3-4514-b5e7-d451958464d7) آقای دلشاد نحوه اضافه کردنش رو توضیح داده. و یک Sample هم برا داونلود گذاشته.
حالا اگه داخل یکی از UserControl ها حالا یک دکمه از نوع مثلاً Button اضافه کنید و در رویداد کلیکش

Response.Write("This is a Comment")
رو بنویسید. اگر در WebForm1 باشید جواب این دستور رو نخواهید دید. اگر در WebForm2 باشید که با استفاده از Ajax هستش و در هر postback دوباره UserControl رو لود میکنه .اگه برا بار اول کلیک کنید اقفاقی نمی افته ولی اگه برا بار دوم کلیک کنید Error خواهد داشت.
در کل سوال من در این مورد هستش که وقتی UserControl ها رو به صورت Ajaxی لود میکنیم .چطور باید از کنترل های داخل UserControl استفاده کنیم تا دچار اینگونه مشکلات نباشه؟

Mostafa_Dindar
جمعه 04 آذر 1390, 19:14 عصر
با سلام.
شاید لازم بود دوباره این تاپیک رو زنده کنم .
amin_alexi (http://barnamenevis.org/member.php?47928-amin_alexi) عزیر نمی دونم در این مورد به نتیجه رسیدی یا نه؟ من هم این مشکل رو دارم. تو این تاپیک (http://how2learnasp.net/article.aspx?code=924b4b24-cff3-4514-b5e7-d451958464d7) آقای دلشاد نحوه اضافه کردنش رو توضیح داده. و یک Sample هم برا داونلود گذاشته.
حالا اگه داخل یکی از UserControl ها حالا یک دکمه از نوع مثلاً Button اضافه کنید و در رویداد کلیکش

Response.Write("This is a Comment")
رو بنویسید. اگر در WebForm1 باشید جواب این دستور رو نخواهید دید. اگر در WebForm2 باشید که با استفاده از Ajax هستش و در هر postback دوباره UserControl رو لود میکنه .اگه برا بار اول کلیک کنید اقفاقی نمی افته ولی اگه برا بار دوم کلیک کنید Error خواهد داشت.
در کل سوال من در این مورد هستش که وقتی UserControl ها رو به صورت Ajaxی لود میکنیم .چطور باید از کنترل های داخل UserControl استفاده کنیم تا دچار اینگونه مشکلات نباشه؟


سلام ،

شما باید یوزر کنترل لود شده را در ViewState ذخیره کنید ، در غیر اینصورت هیچکدام از رویدادهای اون اجرا نخواهد شد .

برای این منظور لطفا اینجا (http://geekswithblogs.net/rashid/archive/2007/08/11/Loading-UserControl-Dynamically-in-UpdatePanel.aspx)را مطالعه بفرمائید .

موفق باشید

hesamsalehnamadi
جمعه 26 اسفند 1390, 00:28 صبح
به این آدرس نگاه کنید

http://forums.asp.net/t/1756716.aspx/1?load+userControl+to+asp+net+Webpage+without+Refr esh+page+