PDA

View Full Version : سوال: بچه ها کمکم کنید این ارور Redirect داره میره رو اعصابم



ali.monje
چهارشنبه 18 تیر 1393, 23:18 عصر
سلام
دوستان این ارور پدرمو در آورد
ببینید شما میتونید کمک کنید.
این تکه کدی هست که لازم دارم من وقتی که تو گرید روی دکمه ادیت کلیک میشه: ( بعد مقدار دهی سیشن با توجه به PostBack ی که هست دوباره خود صفحه لود میشه )

protected void GV_content_RowCommand(object sender, GridViewCommandEventArgs e)
{
int id = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "edit")
{
Session["car_id"] = id;
}
}

بعد اینکه این کد رو اضافه کردم شروع کرد این ارور رو داد :

http://uc.mihanu.ir/uploads/14049331201.jpg (http://uc.mihanu.ir/)

این تیکه کد رو به صفحه اضافه کردم :

<% page EnableEventValidation="false" %>


با اضافه کردن این دیگه رویداد RowCommand مربوط به گرید اجرا نمیشد و صفحه الکی Redirect میشد ولی ارور نداشت، که مجبور شدم از Page.IsPostBack به این شکل استفاده کنم :


if (!(Page.IsPostBack))
{
if (Convert.ToInt32(Session["login"]) == 1)
{
cs = constr.CS();
if ((bool)Session["access"] == true)
{
list_all_car();
}
}
else
{
Response.Redirect("/login.aspx");
}


این بار یه ارور دیگه داد اونم اینه :

http://uc.mihanu.ir/uploads/14049334281.jpg (http://uc.mihanu.ir/)

اینم کدی هست که باید بعد عمل PostBack استفاده کنم :

if (Convert.ToInt32(Session["car_id"]) != 0)
{
SqlDataAdapter da = new SqlDataAdapter("select * from cars where id=@id", cs);
da.SelectCommand.Parameters.AddWithValue("@id", Convert.ToInt32(Session["car_id"]));
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
edit_model.Text = dt.Rows[0]["model"].ToString();
edit_color.Text = dt.Rows[0]["color"].ToString();
edit_pelak.Text = dt.Rows[0]["plaque"].ToString();
edit_year.Text = dt.Rows[0]["year_built"].ToString();
edit_km.Text = dt.Rows[0]["km"].ToString();
}
Response.Write("<script>"
+ "$(document).ready(function () {"
+ "$('.edit_kar_bg').show();"
+ "}</script>"
);
}


به نظرتون من الان باید چیکار کنم( چه خاکی تو سرم کنم از دست این ASP ) ، یعنی هم PostBack دکمه گرید درست کار کنه و هم بعد لود دوباره کدی که لازم دارم اجرا بشه ؟
شدید تو شدید منتظر پاسختون هستم :)

ali.monje
پنج شنبه 19 تیر 1393, 11:40 صبح
از دوستان کسی اطلاعاتی نداره؟

ali.monje
یک شنبه 22 تیر 1393, 10:38 صبح
چرا کسی نیست؟

bftarane
یک شنبه 22 تیر 1393, 11:28 صبح
protected void GV_content_RowCommand(object sender, GridViewCommandEventArgs e)
{
int id = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "edit")
{
Session["car_id"] = id;
}
}

در این تکه کدی که گذاشتید من هیچ ایرادی نمی بینم، فقط ذهنم سمت یه مسئله رفت و اون اینکه ما نمی تونیم برای CommandName از برخی کلمات مثل Update، Delete و Insert استفاده کنیم.
ولی شما edit استفاده کردی شک دارم اینم جزو اون کلمات باشه من خودم همیشه برای ویرایش CommandName رو برابر Change قرار می دم، شما هم این رو یه تست کن ببین نتیجه چی میشه؟