मैं संख्यात्मक रूप से आरोही क्रम में चयन सूची आइटम मान को सॉर्ट करने का प्रयास कर रहा हूं। फिलहाल यह आ रहा है क्रमबद्ध क्रम लेकिन आदेश आ रहा है अल्फा न्यूमेरिक ऑर्डर। उदाहरण के लिए चयनित सूची आइटम का मान '1','2','3','12','13' है। मैं दिए गए क्रम में ड्रॉप डाउन दिखाना चाहता हूं। लेकिन ड्रॉपडाउन में, इसे '1','12','13','2' आदि दिखाया जा रहा है। मेरा मॉडल है

public class Category
{
    [Key]
    public int Id { get; set; }

    [Display(Name="Category Name")]
    [Required]
    [MaxLength(50)]
    public string Name { get; set; }
}

नियंत्रक में

IEnumerable<Category> CatList =   _unitOfWork.Category.GetAll();
        ProductVM productVM = new ProductVM()
        {
            Product=new Product(),
            CategoryList = _unitOfWork.Category.GetAll().Select(i => new SelectListItem {
                Text = i.CategoryName,
                Value = i.Id.ToString()
            }),

मैं आईडी के क्रम में i.CategoryName टेक्स्ट दिखाना चाहता हूं।

धन्यवाद पोल

0
system threep 11 अगस्त 2020, 21:51

1 उत्तर

सबसे बढ़िया उत्तर

आप जो वर्तमान क्रम देख रहे हैं, वह ऐसा है, क्योंकि आपके मामले में Id स्ट्रिंग प्रकार का है और स्ट्रिंग्स को आरोही क्रम में क्रमबद्ध किया गया है। इसके बजाय, आप पहले OrderBy एक्सटेंशन विधि LINQ का उपयोग करके सूची को सॉर्ट कर सकते हैं और फिर SelectListItem प्रकार की सूची बना सकते हैं। संशोधित विधि नीचे की तरह दिखेगी

// ...other code
// OrderBy sorts elements in a sequence in Ascending order
ProductVM productVM = new ProductVM()
{
    Product=new Product(),
    CategoryList = _unitOfWork.Category.GetAll().OrderBy(i => i.Id)
        .Select(i => new SelectListItem {
                Text = i.CategoryName,
                Value = i.Id.ToString()
})
// ...other code

दस्तावेज़ीकरण से अधिक यहां< /ए>

0
Sai Gummaluri 11 अगस्त 2020, 22:04