PDA

View Full Version : در چه مواقعی باید رویدادها رو هندل کرد ؟؟



federrer
جمعه 23 شهریور 1386, 11:44 صبح
چرا و در چه مواقعی باید رویدادها رو هندل کرد ؟؟

مثلا من یه گرید ویو دارم که ابتدا با کد نویسی بایندش می کنم ، بعد ش که میخوام با استفاده از SqlDataSource رکوردها رو ویرایش و حذف کنم .این پیغام رو میده :

Exception Details: System.Web.HttpException: The GridView 'GridView1' fired event RowEditing which wasn't handled.

توضیح : برای اینکه بتونم با کلیک کردن یه دکمه ، گریدویو رو بایند کنم ، تو متد Page_load می نویسم :



Gridview1.DataSourceID="" ;



بعد که بایند شد میخوام با استفاده از SqlDataSource رکوردها رو ویرایش و حذف کنم .

rtech
جمعه 23 شهریور 1386, 17:06 عصر
اگر از نمونه هایی که آقای راد گذاشتند استفاده کنید مشکلتون حل میشه یا میتونید از کدهای ایشون استفاده کنید :



http://barnamenevis.org/forum/showthread.php?t=50594

federrer
جمعه 23 شهریور 1386, 17:36 عصر
بله ، همونطور که گفتید من هم از نمونه های ایشون استفاده میکنم .

نحوه هندل کردن در پروژه ایشون هست ولی

1- من در این مورد اصلا هیچ کدی واسه RowEditing ننوشتم که بخوام هندلش کنم !!!

2- ایشون چسبیده به تعریف متد ، رویداد رو هندل کردن . مثلا: ( تو ورژن اول پروژه)



Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventA rgs) Handles GridView1.RowCancelingEdit
GridView1.ShowFooter = True
GridView1.EditIndex = -1
BindGridView()
End Sub

از ابزارهای تبدیل vb.net به سی شارپ که استفاده می کنم کدی که بعد از تعریف متد هست رو حذف میکنه !!!!

یه توضیح کامل در مورد هندل کردن ایونتها و این که چه وقتی باید ایونتها رو هندل کرد میخواستم که تو موارد مشابه گیر نکنم

توضیح :
من از سی شارپ استفاده میکنم . تو Design که SqlDataSource رو تعریف کردم از متدهای UpdateCommand وSelectCommand و DeleteCommand خودش کمک گرفتم و دستورات رو مستقیم نوشتم (ه اگه با لود شدن صفحه ،گریویو هم بایند بشه درست کار میکنه) .

ولی چون رکوردهای من زیاده میخوام پس از پیدا کردن رکورد مورد نظر ( یه جستجو) ، وقتی گریدویو بایند شد، اونوقت اونو ویرایش یا حذف کنم ( اینطور که ارور میده باید RowEditing رو هندل کرد ولی من چیزی تو این رویداد ننوشتم )

rtech
جمعه 23 شهریور 1386, 21:36 عصر
یک نگاه به لینک زیر بندازید امیدوارم مشکلتون رو حل کنه :


http://forums.asp.net/p/1124600/1765517.aspx

federrer
شنبه 24 شهریور 1386, 09:41 صبح
مهندس جون ، دستت درد نکنه . مشکل حل نشد

خودم هم تو فروم های خارجی گشتم ولی کسی واسه این مشکل راه حلی پیشنهاد نداده بود:افسرده:

اگه بخوام دیگه اصل موضوع رو بگم ،

برای اینکه با لود شدن صفحه ، SqlDataSource در نظر گرفته نشه.
تو رویداد Page_load داریم :



GridView1.DataSourceID = "";

میخوایم با کلیک کردن یه دکمه گریدویو بایند بشه و اطلاعات رو نشون بده .و بعدش بتونیم با SqlDataSource ویرایش و حذف رو رکوردها داشته باشیم :
تو رویداد کلیک دکمه داریم :



Cnn.Open();
SqlDataAdapter SDA = new SqlDataAdapter(strsql, Cnn);
SDA.SelectCommand = Cmd;
DataSet DS = new DataSet();
SDA.Fill(DS, "Table1");
GridView1.DataSource = DS;
GridView.DataBind();

// baray estefade az SqlDataSource
GridView1.DataSourceID = "SqlDataSourcename";

با کلیک دکمه ، بعد از اینکه گریدویو رو بایند میکنیم ، امکان تغییر DataSource رو نمیده !! و این ارور رو میده :




Exception Details: System.Web.HttpException: The GridView 'GridView1' fired event RowEditing which wasn't handled.