PDA

View Full Version : طراحی صفحه محصولات



sara_t
جمعه 19 آذر 1395, 14:13 عصر
سلام دوستان

دوستان من تعدادی محصول دارم مثلا a,b,c,d,e,f که در یک تیبل بنام گروه گذاشتم.ویه جدول محصولات که کد گروه رو توش قرار دادم و تمام محصولاتم رو اونجا ذخیره میکنم.

حالا میخام نام این محصولات رو در منو بالای صفحه بنویسم و وقتی کاربر روی هر محصول کلیک کرد تمامی اون محصول رو بهش نشون بده. کلا نمیدونم که باید برای هر محصول پیج جدید بنویسم ویا کار دیگه ای.اگه میشه منون راهنمایی کنید یا لینگی معرفی کنید که اموزشی باشه.

ممنون میشم

OmMiD_MtWo
شنبه 20 آذر 1395, 08:15 صبح
سلام دوستان

دوستان من تعدادی محصول دارم مثلا a,b,c,d,e,f که در یک تیبل بنام گروه گذاشتم.ویه جدول محصولات که کد گروه رو توش قرار دادم و تمام محصولاتم رو اونجا ذخیره میکنم.

حالا میخام نام این محصولات رو در منو بالای صفحه بنویسم و وقتی کاربر روی هر محصول کلیک کرد تمامی اون محصول رو بهش نشون بده. کلا نمیدونم که باید برای هر محصول پیج جدید بنویسم ویا کار دیگه ای.اگه میشه منون راهنمایی کنید یا لینگی معرفی کنید که اموزشی باشه.

ممنون میشم

سلام، پیج جدید لازم نیست. شما برای کل محصولات یک اکشن در کنترلر مربوطه مینویسید که آی دی گروه محصولات رو میگیره و تمام محصولات مربوطه رو در ویوی اکشن مورد نظر نمایش میده. حالا اگر رابطه ی بین جداولتون رو واضح تر بگین بهتر میشه کمک کرد.

sara_t
شنبه 20 آذر 1395, 10:20 صبح
ممنون
یه جدول دارم بنام Groups که بصورت زیر هست:


ID int
Name nvarchr
ParentID


و یه جدول محصولات بنام Porduct:

143723
اینم کد product که در کنترلر home نوشتم:


public ActionResult Product()
{
GroupRepository blGroup = new GroupRepository();
ProductRepository blProduct = new ProductRepository();
var model = new Eshop.ViewModels.Home.ProductViewModel();
model.Groups = blGroup.Select();
model.Products = blProduct.Select();
model.BestSellersProducts = blProduct.Select().OrderBy(p => p.FactorItems.Count).Take(6);
return View(model);


}


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

حالا من میخام وقتی روی منوی بالای سایت روی محصول a کلیک میکنم. فقط لیست محصولات A رو ببینم. و بهمین صورت بقیه محصولات.
کلا تو پیاده سازی و درک این قسمت موندم چیکار کنم.

OmMiD_MtWo
شنبه 20 آذر 1395, 13:26 عصر
ممنون
یه جدول دارم بنام Groups که بصورت زیر هست:


ID int
Name nvarchr
ParentID


و یه جدول محصولات بنام Porduct:

143723
اینم کد product که در کنترلر home نوشتم:


public ActionResult Product()
{
GroupRepository blGroup = new GroupRepository();
ProductRepository blProduct = new ProductRepository();
var model = new Eshop.ViewModels.Home.ProductViewModel();
model.Groups = blGroup.Select();
model.Products = blProduct.Select();
model.BestSellersProducts = blProduct.Select().OrderBy(p => p.FactorItems.Count).Take(6);
return View(model);


}


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

حالا من میخام وقتی روی منوی بالای سایت روی محصول a کلیک میکنم. فقط لیست محصولات A رو ببینم. و بهمین صورت بقیه محصولات.
کلا تو پیاده سازی و درک این قسمت موندم چیکار کنم.
در ویوی مربوط به home باید لیست محصولات رو طبق گروه بندی مربوطه در بالای سایت طبق یک متد بازگشتی لود کنید بعد با استفاده از html.action یا تگ a به صورت زیر:
localhost/home/group/{id}
به اکشن group برید و آی دی مورد نظر رو بگیرید و لیست محصولات اون گروه رو لود کنید:

public ActionResult group(int id)
{
GroupRepository blGroup = new GroupRepository();
var products = blGroup.Get(x=> x.id == id).products;
ret view (products);
}
البته متد Get رو میتونید خودتون پیاده سازی کنید، این چیزی که من نوشتم فقط محصولات این گروه رو میاره و اگر این گروه خودش پدر گروه دیگه ای باشه، محصولات اون زیرگروه رو لود نمیکنه. بعد تو ویوی مربوط به group یک لیست از محصولات میگیرید و لود میکنید.
اونجور که من متوجه شدم، شما میخواید، گروه مربوط به محصولات رو بگیرید و لیست محصولات اون گروه رو نمایش بدید.

sara_t
شنبه 20 آذر 1395, 16:48 عصر
public ActionResult Product(int GroupId)
{
GroupRepository blGroup = new GroupRepository();
ProductRepository blProduct = new ProductRepository();
var model = new CharmEshop.ViewModels.Home.ProductViewModel();
model.Groups = blGroup.Select();
model.Products = blProduct.Select().Where(p => p.GroupId == GroupId);

model.BestSellersProducts = blProduct.Select().OrderBy(p => p.FactorItems.Count).Take(6);
return View(model);


}


ممنون به این صورت درستش کردم.

همونطور که گفتین مشکل زمانی میشه که بخام والد اصلی رو صدا بزنم.که باید یه سلکت تو در تو بنویسم.
در واقع یه دستوری مثه زیر که البته ارور میده:


model.Products = blProduct.Select().Where(GroupId.Equals(blGroup.Se lect().Where(p => p.ParentId == GroupId)));

میشه بگین که سینتکس دوتا سکلت تو در تو تو mvc چه شکلیه؟

OmMiD_MtWo
شنبه 20 آذر 1395, 20:27 عصر
public ActionResult Product(int GroupId)
{
GroupRepository blGroup = new GroupRepository();
ProductRepository blProduct = new ProductRepository();
var model = new CharmEshop.ViewModels.Home.ProductViewModel();
model.Groups = blGroup.Select();
model.Products = blProduct.Select().Where(p => p.GroupId == GroupId);

model.BestSellersProducts = blProduct.Select().OrderBy(p => p.FactorItems.Count).Take(6);
return View(model);


}


ممنون به این صورت درستش کردم.

همونطور که گفتین مشکل زمانی میشه که بخام والد اصلی رو صدا بزنم.که باید یه سلکت تو در تو بنویسم.
در واقع یه دستوری مثه زیر که البته ارور میده:


model.Products = blProduct.Select().Where(GroupId.Equals(blGroup.Se lect().Where(p => p.ParentId == GroupId)));

میشه بگین که سینتکس دوتا سکلت تو در تو تو mvc چه شکلیه؟

سلام، این لینک فکر میکنم همون Select تو در تویی هست که میخواید :
http://stackoverflow.com/questions/21262391/recursive-linq-query-select-item-and-all-children-with-subchildren