PDA

View Full Version : یک مشکل عجیب با GridView



raha_hakhamanesh
چهارشنبه 26 بهمن 1390, 14:58 عصر
سلام دوستان

من در یک Web Application از Grid View استفاده کردم و تعدادی Image Buton را برای اعمال مختلف درون آن قرار دادم. در این برنامه زمانیکه بر روی هر یک از Image Butonها کلیک شود ID مربوط به آن ردیف از پایگاه که قبلا بایند شده بعنوان پارامتر برای صفحه درخواستی ارسال می شود.



<asp:ImageButton ID="ImageButton2" runat="server" Height="20px"
CommandArgument='<%#DataBinder.Eval(Container.DataItem,"ID")%>'
CommandName="Show Record"
ImageUrl="~/images/Disp 003.png" ToolTip="Display Topic" Width="20px" />






protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Show Record")
{
Response.Redirect("TopicViewer.aspx?ID=" + e.CommandArgument.Tostring());
}
}





بعد از اینکه Image Buttonها کلیک می شوند خطای EnableEventValidation می دهد!
جالبتر اینکه همین کد در یک پروژه دیگر درست کار می کند!

لطفا اگر نکته ای در این باره وجود دارد راهنمایی بفرمایید

متشکرم

sam166
چهارشنبه 26 بهمن 1390, 15:45 عصر
به جای کد بالا از این استفاده کن
PostBackUrl='<%# String.Concat("SendMessage.aspx?id=", Eval("ID")) %>'

حالا تو صفحه مورد نظر اینجوری بخونش
int Id = Convert.ToInt32(Request.QueryString["id"]);

raha_hakhamanesh
چهارشنبه 26 بهمن 1390, 15:55 عصر
سلام
با تشکر از راهنمایی شما

آیا امکان دارد توضیح دهید چه اتفاقی افتاد، چون راهکار شما مشکل را حل کرد.
و دوم اینکه من ID را کد کرده و ارسال می کنم که به این ترتیب نمی توانم آن را کد کنم چه پیشنهادی دارید؟

از راهنمایی شما متشکرم

Saman Hashemi
چهارشنبه 26 بهمن 1390, 16:13 عصر
فکر کنم اگر CausesValidation دکمه برابر false قرار بدی هم درست بشه...!

raha_hakhamanesh
چهارشنبه 26 بهمن 1390, 16:15 عصر
سلام

نه نشد!
اون از تغییر قبلی بود با این یکی نشد

sam166
چهارشنبه 26 بهمن 1390, 18:09 عصر
سلام
با تشکر از راهنمایی شما

آیا امکان دارد توضیح دهید چه اتفاقی افتاد، چون راهکار شما مشکل را حل کرد.
و دوم اینکه من ID را کد کرده و ارسال می کنم که به این ترتیب نمی توانم آن را کد کنم چه پیشنهادی دارید؟

از راهنمایی شما متشکرم

اگر موقع کلیک کردن نوار آدرس رو نگاه کنید متوجه کد میشید
در مورد کد کردن هم نمیدونم:گریه::متفکر:

raha_hakhamanesh
پنج شنبه 27 بهمن 1390, 00:02 صبح
سلام
مشکل برطرف شد راهنمایی شده از صفحه http://stackoverflow.com/questions/6534676/system-argumentexception-invalid-postback-or-callback-argument


protected void Page_Load(object sender, EventArgs e)
{
BindGrid();
}



باید بشرح زیر شود یعنی با رفرش شدن در پارامتر ارسالی ابهام می شود و ادامه داستان ...


protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
BindGrid();
}



به هر حال از دوستان متشکرم :چشمک: