PDA

View Full Version : مشکل استفاده از Delegate



razaghi
دوشنبه 19 فروردین 1387, 09:48 صبح
با سلام.
من یک صفحه دارم که Gridview به صورت Dynamic می سازد. به منظور sort در Header گریدویو LinkButton گذاشتم که وقتی click می کند Gridview مرتب شود. بدین منظور ابتدا برای LinkButtin رویداد Click را Add کردم به این صورت :
lc.Click += new EventHandler(Sorting);
در متد Sorting باید متدی که در صفحه اصلی است صدا کنیم که برای این منظور از Delegate استفاده کردم. مشکل این است که در صفحه اصلی یک<div id="divScroll" runat="server" داریم و در متدی که در delegate صدا زده می شود می خواهم divscroll خالی کنم با اسن دستور :
divScroll.controls.clear();
وقتی متد مربوطه اجرا می شود این دستور -divScroll.controls.clear();
- را اجرا می کند و بعد از اجرا پیغام Object Not Refrence می دهد. ولی اگر دستور -divScroll.controls.clear();- را برداریم برنامه اجرا می شود و هیچ پیغامی نمی دهد.
frSetSessionSort یک Delegate است به متد SetSessionSort

private void Sorting(Object sender, EventArgs e
{
frSetSessionSort("FName");
}

متد SetSessionSortبه صورت زیر است :
private void SetSessionSort(string fieldNameSort)
{
if ( Session["Users_Sort"] == null )
Session["Users_Sort"] = fieldNameSort + " ASC";
else
Session["Users_Sort"] = Utils.SetColumnText(Session["Users_Sort"].ToString(),fieldNameSort);

divScroll.Controls.Clear();
}
لطفا راهنمایی کنید.

twelve
دوشنبه 19 فروردین 1387, 10:48 صبح
می خواهم divscroll خالی کنم

توی این Div چه کنترلی داری ؟ استاتیک ایجادش کردی یا دینامیک؟

razaghi
دوشنبه 19 فروردین 1387, 12:06 عصر
من GridView را به صورت دینامیک می سازم و به DivScroll اضافه می کنم.

twelve
دوشنبه 19 فروردین 1387, 12:57 عصر
شاید این بهتون جواب بده :


divscroll.Controls.Remove(FindControl(GridviewID))

razaghi
دوشنبه 19 فروردین 1387, 13:10 عصر
وفتی برنامه را trace می کنم. به این خط که می رسد error نمی دهد. بعد از اجرای کامل که می خواهد صفحه نمایش داده شود error می دهد.

razaghi
دوشنبه 19 فروردین 1387, 13:44 عصر
با تشکر فراوان. مشکلم با روشی که شما گفتید حل شد.

razaghi
سه شنبه 20 فروردین 1387, 13:36 عصر
روشی که گفتید برای Remove جواب داد البته چون Findcontrol می کنیم و در صورت نبودن کنترل error نمی دهد. ولی اگر بخواهم به divscroll کنترای Add کنم error می دهد.
divscroll.Controls.Add