reddevilutd
یک شنبه 02 خرداد 1395, 14:32 عصر
با عرض سلام
من در asp.net برنامه می نویسم ، چگونه می توانم از نوشتن های مکرر کدی که در چندین صفحه به آن نیاز دارم ، جلوگیری کنم و فقط آن را یک بار بنویسم و در تمام صفحات آن را فراخوانی کنم ؟ مثلا کد زیر :
protected void btnAddBasket_Click(object sender, EventArgs e)
{
string id = ((Button)sender).CommandArgument;
MasterDCDataContext db = new MasterDCDataContext();
var q = db.Products.Where(c => c.PrID == int.Parse(id)).Single();
PrTitle = q.PrName;
PrCompany = q.PrCompany;
prType = q.PrType;
PrImage = q.PrImage;
PrPrice = q.PrPrice;
PrTotalPrice = q.PrPrice * 2;
if (Session["basket"] == null)
{
DataTable dt = new DataTable();
dt.Columns.Add("PrID");
dt.Columns.Add("PrImage");
dt.Columns.Add("PrTitle");
dt.Columns.Add("PrPrice");
dt.Columns.Add("PrTotalPrice");
dt.Columns.Add("PrCompany");
dt.Columns.Add("PrType");
DataRow dr = dt.Rows.Add();
dr["PrID"] = Request.QueryString["PrID"];
dr["PrImage"] = PrImage;
dr["PrTitle"] = PrTitle;
dr["PrPrice"] = PrPrice;
dr["PrTotalPrice"] = PrTotalPrice;
dr["PrCompany"] = PrCompany;
dr["PrType"] = prType;
Session["basket"] = dt;
}
else
{
DataTable dt = (DataTable)Session["basket"];
DataRow dr = dt.Rows.Add();
dr["PrID"] = Request.QueryString["PrID"];
dr["PrImage"] = PrImage;
dr["PrTitle"] = PrTitle;
dr["PrPrice"] = PrPrice;
dr["PrTotalPrice"] = PrTotalPrice;
dr["PrCompany"] = PrCompany;
dr["PrType"] = prType;
//dt.Rows.Add(dr);
Session["basket"] = dt;
}
}
یک کلاس ایجاد کردم تا این کد را درون آن بنویسم ، اما Session یا امثال آن را نمی شناسد و خطا می گیرد . آیا راه انجام این کار ایجاد کلاس است ؟ چگونه این کار را انجام دهم ؟ چگونه آن را در صفحات مورد نیاز فراخوانی کنم ؟
با تشکر
من در asp.net برنامه می نویسم ، چگونه می توانم از نوشتن های مکرر کدی که در چندین صفحه به آن نیاز دارم ، جلوگیری کنم و فقط آن را یک بار بنویسم و در تمام صفحات آن را فراخوانی کنم ؟ مثلا کد زیر :
protected void btnAddBasket_Click(object sender, EventArgs e)
{
string id = ((Button)sender).CommandArgument;
MasterDCDataContext db = new MasterDCDataContext();
var q = db.Products.Where(c => c.PrID == int.Parse(id)).Single();
PrTitle = q.PrName;
PrCompany = q.PrCompany;
prType = q.PrType;
PrImage = q.PrImage;
PrPrice = q.PrPrice;
PrTotalPrice = q.PrPrice * 2;
if (Session["basket"] == null)
{
DataTable dt = new DataTable();
dt.Columns.Add("PrID");
dt.Columns.Add("PrImage");
dt.Columns.Add("PrTitle");
dt.Columns.Add("PrPrice");
dt.Columns.Add("PrTotalPrice");
dt.Columns.Add("PrCompany");
dt.Columns.Add("PrType");
DataRow dr = dt.Rows.Add();
dr["PrID"] = Request.QueryString["PrID"];
dr["PrImage"] = PrImage;
dr["PrTitle"] = PrTitle;
dr["PrPrice"] = PrPrice;
dr["PrTotalPrice"] = PrTotalPrice;
dr["PrCompany"] = PrCompany;
dr["PrType"] = prType;
Session["basket"] = dt;
}
else
{
DataTable dt = (DataTable)Session["basket"];
DataRow dr = dt.Rows.Add();
dr["PrID"] = Request.QueryString["PrID"];
dr["PrImage"] = PrImage;
dr["PrTitle"] = PrTitle;
dr["PrPrice"] = PrPrice;
dr["PrTotalPrice"] = PrTotalPrice;
dr["PrCompany"] = PrCompany;
dr["PrType"] = prType;
//dt.Rows.Add(dr);
Session["basket"] = dt;
}
}
یک کلاس ایجاد کردم تا این کد را درون آن بنویسم ، اما Session یا امثال آن را نمی شناسد و خطا می گیرد . آیا راه انجام این کار ایجاد کلاس است ؟ چگونه این کار را انجام دهم ؟ چگونه آن را در صفحات مورد نیاز فراخوانی کنم ؟
با تشکر