Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Tạo menu Dropdown lấy dữ liệu từ SQL trong MVC

18:30 26-03-2018 1.744 lượt xem 1 bình luận 06:18 27-03-2018

bảng Category

bảng SubCategory

Em mới học nên chưa biết gì , có tìm hiểu trên mạng nhưng không hiểu .Em có 1 project có  sẵn và  2 bảng Category ( có sãn) + bảng SubCategory ( tạo thêm) , e muốn tạo menu Dropdownlist lấy dữ liệu từ 2 bảng kia với cột ID của bảng Category sẽ xổ xuống tướng ứng với ID của bảng SubCategory. Thanh menu gốc đã lấy dữ liệu từ bảng Category với ID từ 1-6 như hình. Giờ e muốn làm nó xổ xuống từ đó  thì phải làm như nào ạ ?

thanh menu gốcCode của thanh menu đó : 

- Menu.Cshtml

@model IEnumerable<string>

<ul class="nav navbar-nav" id="navScroll">
    @foreach (string s in Model)
    { 
        <li><a href="/redirect?Id=3At9nNmWWKSOQlG0GKDChe9vkhWUuLVjAkG5C8qsUzyyQC3JCNu73mGFltJqz46NFV1N8uaPULT8P%2b7xehBWWec1WpE2vWTmTJ7j1q00Z4VqrIpSAnIQ4l0Ean6fq8O1"
    }
</ul>

Category.cs trong Model:

public class Category
    {
        [HiddenInput(DisplayValue = false)]
        public int ID { get; set; }
        public string Name { get; set; }//unique
        public int Order { get; set; }
        [UIHint("DDLFCategoryType")]
        public CategoryTypeEnum Type { get; set; }
        public IEnumerable<Article> Articles { get; set; }

        public Category()
        {
            Articles = new List<Article>();
        }
    }

    public enum CategoryTypeEnum
    {
        Article,
        Announcement,
        Navigator
    }

HomeController.cs:

public ActionResult Category(CategoryTypeEnum type)
        {
            var result = new List<CategoryViewModel>();
            int MAX_ARTICLE = Int16.Parse(ConfigurationManager.AppSettings["MaximumItemsPerPage"]);

            var entities = categoryRepository
                .GetMany(c => c.Type == type)
                .ToList();
            foreach (Category c in entities)
            {
                var list = articleRepository
                    .GetMany(a => a.CategoryID == c.ID && a.Status == ArticleStatus.Public)
                    .OrderByDescending(a => a.CreateAt)
                    .Take(MAX_ARTICLE)
                    .ToList();

                var item = list.Count() > 0
                        ? list.Select(l => l.ToViewModel()).ToList()
                        : new List<ArticleViewModel>();

                result.Add(new CategoryViewModel
                {
                    ID = c.ID,
                    Name = c.Name,
                    Articles = item
                });
            }
            return PartialView(result);
        }

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 06:18 27-03-2018

bước 1. chưa cần tính chuyện đổ xuống bạn làm cho nó hiển thị ra được theo hàng dọc đã.

Danh sách cần hiển thị bạn bỏ vào trong viewbag (hoặc model tùy bạn) để hiển thị lên.

 

bước 2. viết 1 đoạn js bắt sự kiện mousehover lên các item bạn cần. Nếu hover thì hiện cah1 đám đó ra và k thì ẩn nó đi

 

Câu hỏi mới nhất