پروگرامنویس
سه شنبه 11 تیر 1392, 16:52 عصر
درود
من تو صفحه پست یه بخش واسه گذاشتن دیدگاه ها گذاشتم.
سناریو:
هنگامیکه صفحه لود میشه با توجه به آی دی پست که از طریق url ارسال شده تمام رکوردهای پست به همراه دیدگاه های پست لود شده تو صفحه نشون داده میشه.
هرکاربری که کامنت میزاره و روی دکمه افزودن دیدگاه کلیک میکنه پس از مقایسه کد امنیتی دیدگاه در جدول اففزوده میشه و دوباره صفحه لود میشه.
واسه بار اول و دوم همه چی درست کار میکنه اما یهو پیکره زیر میاد و میگه پارامتر ارسالی به url نال هستش.یعنی توی رویداد دکمه افزودن دیدگاه مقدار Request["fid"] انگار از بین میره ومیپره.
اینم بگم من ابتدا متد لود رو بدون if نوشته بودم اما بخاطر همین مشکل اومدم دوباره توی متد دکمه دیدگاه fid رو دوباره توسط url به متد لود پاس دادم اما درست نشد!!
http://civ.id1945.com/up/2f446980d8e9.png
کدهای متد لود صفحه:
protected void Page_Load(object sender, EventArgs e)
{
File fl = new File();
Payam pm = new Payam();
//
if (Request["nc"] == null || Request["nc"].ToString() == String.Empty || Request["nc"].ToString() =="")
{
fl.ID = Int32.Parse(Request["fid"]);
pm.pstID = Request["fid"];
}
else
{
fl.ID = Int32.Parse(Request["nc"]);
pm.pstID = Request["nc"];
lblmsg.Text = "دیدگاه شما با پیروزی در سایت نگاشته شد!";
}
DataTable dt = fl.SelectPostsByID();
rptfle.DataSource = dt;
rptfle.DataBind();
DataTable dtc = pm.SelectCmntOk();
rptcmnt.DataSource = dtc;
rptcmnt.DataBind();
}
کدهای دکمه افزودن دیدگاه:
protected void btnCmnt_Click(object sender, EventArgs e)
{
if (Session["cpch"] != null )
{
string strc = Session["cpch"].ToString();
Session.Remove("cpch");
if (txtCapch.Text != strc)
{
lblmsg.Text = "کد امنیتی درست نیست!";
return;
}
else
{
Payam pm = new Payam();
pm.cName = txtName.Text;
pm.cCmnt = txtCmnt.Text;
pm.pstID = Request["fid"]; // آی دی پست مربوطه
pm.AddCmnt();
Response.Redirect("onefile.aspx?nc=" +Request["fid"]);
return;
}
}
else
{
btnCmnt_Click(null, null);
}
}
من تو صفحه پست یه بخش واسه گذاشتن دیدگاه ها گذاشتم.
سناریو:
هنگامیکه صفحه لود میشه با توجه به آی دی پست که از طریق url ارسال شده تمام رکوردهای پست به همراه دیدگاه های پست لود شده تو صفحه نشون داده میشه.
هرکاربری که کامنت میزاره و روی دکمه افزودن دیدگاه کلیک میکنه پس از مقایسه کد امنیتی دیدگاه در جدول اففزوده میشه و دوباره صفحه لود میشه.
واسه بار اول و دوم همه چی درست کار میکنه اما یهو پیکره زیر میاد و میگه پارامتر ارسالی به url نال هستش.یعنی توی رویداد دکمه افزودن دیدگاه مقدار Request["fid"] انگار از بین میره ومیپره.
اینم بگم من ابتدا متد لود رو بدون if نوشته بودم اما بخاطر همین مشکل اومدم دوباره توی متد دکمه دیدگاه fid رو دوباره توسط url به متد لود پاس دادم اما درست نشد!!
http://civ.id1945.com/up/2f446980d8e9.png
کدهای متد لود صفحه:
protected void Page_Load(object sender, EventArgs e)
{
File fl = new File();
Payam pm = new Payam();
//
if (Request["nc"] == null || Request["nc"].ToString() == String.Empty || Request["nc"].ToString() =="")
{
fl.ID = Int32.Parse(Request["fid"]);
pm.pstID = Request["fid"];
}
else
{
fl.ID = Int32.Parse(Request["nc"]);
pm.pstID = Request["nc"];
lblmsg.Text = "دیدگاه شما با پیروزی در سایت نگاشته شد!";
}
DataTable dt = fl.SelectPostsByID();
rptfle.DataSource = dt;
rptfle.DataBind();
DataTable dtc = pm.SelectCmntOk();
rptcmnt.DataSource = dtc;
rptcmnt.DataBind();
}
کدهای دکمه افزودن دیدگاه:
protected void btnCmnt_Click(object sender, EventArgs e)
{
if (Session["cpch"] != null )
{
string strc = Session["cpch"].ToString();
Session.Remove("cpch");
if (txtCapch.Text != strc)
{
lblmsg.Text = "کد امنیتی درست نیست!";
return;
}
else
{
Payam pm = new Payam();
pm.cName = txtName.Text;
pm.cCmnt = txtCmnt.Text;
pm.pstID = Request["fid"]; // آی دی پست مربوطه
pm.AddCmnt();
Response.Redirect("onefile.aspx?nc=" +Request["fid"]);
return;
}
}
else
{
btnCmnt_Click(null, null);
}
}