مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza1207

عضویت از 1394/04/10

مشکل در نمایش

  • چهارشنبه 3 شهریور 1395
  • 02:12
تشکر میکنم

با سلام
اساتید گرامی اگه یه راه حل برای این مشکل من بگید ممنون میشم 


<div class="tab-pane" id="details-info">
                  @{
  
  
                      Presentation.Web.Models.Repository.Rep_ProductProperty property;     
                                 
  using (property = new Presentation.Web.Models.Repository.Rep_ProductProperty())
  {
  
  
                          var query = property.GetProperty(Model.ProductId);
  
  
                          foreach (var item in query)  
                          {
                                      
                              if (item.Level == 1)                        
      		 {
  
		<h3 class="col-md-12 clearfix hilight-h3"><i class="fa fa-chevron-left"></i>  @item.PropertyName:</h3> 

		 }
  
                              if (item.Level == 2)                           
   		  {   
			<ul class="col-md-12 property">

                                      <li class="col-md-3 pull-right">  @item.PropertyName :</li>    
                                
  		  <li class="col-md-9 pull-left"> @item.ValueName </li>    
                         
    		   </ul> 
                            
		   }
                        
 	       }
  
  
                    
  }
  

 

 

تکه کد بالا برای نمایش مشخصات محصول من هست
و نمایشش هم به صورت عکس زیر هست 

PropertyName  همون پشتیبانی از کارت حافظه هست

ValueName همون 12 و 64 گیگ هست

 

 


اگه مشاهده کنید پشتیانی از کارت حافظه دو بار نوشته شده ولی من میخوام که یک بار نوشته بشه
یعنی پشتیانی از کارت حافظه یه بار نوشته بشه ولی مقدار های آن که 12 و 64 هر دو نوشته بشن
 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 3 شهریور 1395
  • 07:45

باید GroupBy بزنید بر اساس ویژگی و بعد نمایش بدید

چون مقدار ویژگی تکراری است دوبار نمایش داده و با GroupBy یا Distict درست میشه

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • چهارشنبه 3 شهریور 1395
  • 14:11

تو این روش هم یه مشکلی دارم به عکس نگاه کنین 

 

اون قسمت که با فلش مشخص شده به  level نیاز دارم تا عنوان پرورپرتی رو مشخص کنم ولی تو اون قسمت به اون دسترسی ندارم! چجوری میتونم اون قسمت به level دسترسی داشته باشم؟

 

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 3 شهریور 1395
  • 16:15

در این روش بهتره از Distinct استفاده کنید برای حذف تکراری ها

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • چهارشنبه 3 شهریور 1395
  • 17:28

من هرچی گشتم نتونستم پیدا کنم که چجوری از Distinct استفاده کنم اگه در کد عکس بالا بنویسم 

foreach(var item in query.Distinct()))

 جواب نمیده تکراری ها حذف نمیشن اینجا فقط PropertName ها هستند که تکراری اند . هر رکود من هم شامل  PropertyName , Level , ValueName هست. مثلا اگه بشه گفت Distinct رو بر اساس PropertyName  ها اعمال کن جواب میده       (Distinct(c=>c.PropertyName

 

این  query  هم یک  IQueryable  بر میگردونه

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • چهارشنبه 3 شهریور 1395
  • 17:33

اینم متد مربوط به query

        public IQueryable<Rep_PropertyForProduct> GetProperty(int ProductId)
        {

            var Result = from a in db.PopValues
                         join b in db.ProductProperties
                         on a.PopId equals b.PPId
                         join c in db.Properties
                         on b.PropertyId equals c.ProppertyId
                         join d in db.Values
                         on a.ValueId equals d.ValueId
                         where b.ProductId == ProductId
                         select new Rep_PropertyForProduct {PropertyName=c.PropertyName, Level=c.Level,ValueName=d.ValueName };

 

        
           
            return Result;

        }

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 4 شهریور 1395
  • 09:40

از طریق Nuget باید

DistinctBy را نصب کنید و سپس استفاده کنید 
myList.DistinctBy(x => x.id);

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)