2012-12-08 27 views
16

Tôi muốn sử dụng nhiều lựa chọn trong Chosen. tôi có mô hình kỹ năng như thế nào,Làm thế nào để sử dụng nhiều lựa chọn trong mvc 4?

public class Skill 
    { 
     public int Id { get; set; } 
     public string Name { get; set; }   
    } 

này hoạt động trong ứng dụng của tôi:

<select data-placeholder="Choose a Country..." class="chzn-select" multiple > 
      <option value=""></option> 
      <option value="United States">United States</option> 
      <option value="Albania">Albania</option> 
      <option value="Algeria">Algeria</option> 
    </select> 

Tôi muốn thay thế dữ liệu quốc gia có dữ liệu của tôi. Trong điều khiển i viết:

 var list = MyService.LoadAllSkills(); 
     ViewBag.Skills = new MultiSelectList(list, "Id", "Name"); 

Theo quan điểm:

@Html.ListBox("Name", ViewBag.Skills as MultiSelectList, 
       new { @class = "chzn-select" }) 

Xem kết quả của @ Html.ListBox()@ Html.DropDownList() không giống như <select>

Tôi nhận được kết quả như vậy:

enter image description here

Nhưng, tôi muốn để có được kết quả như

enter image description here

Làm thế nào tôi có thể thay đổi mẫu Chosen?

+0

thử bất kỳ plugin jquery nào cho điều đó. –

+0

@Kundan Singh Chouhan, bạn có thể chia sẻ bất kỳ liên kết nào khác không? cho plugin khác –

Trả lời

12

Sự khác biệt duy nhất tôi có thể thấy giữa ví dụ được mã hóa cứng (mà bạn đã nói là đang hoạt động) và ví dụ bạn tạo với trình trợ giúp ListBox là sự vắng mặt của thuộc tính data-placeholder. Vì vậy:

@Html.ListBox(
    "Countries", 
    ViewBag.Skills as MultiSelectList, 
    new { @class = "chzn-select", data_placeholder = "Choose a Country..." } 
) 

Điều này ít nhất phải tạo cùng một đánh dấu như những gì bạn nói đang hoạt động. Nếu nó không hoạt động thì có lẽ bạn đã không thiết lập các plugin một cách chính xác hoặc bạn có một số lỗi javascript khác. Đọc tài liệu về plugin về cách thiết lập.

+0

thuộc tính giữ chỗ dữ liệu chưa được biết. và data_placeholder không làm việc .. –

+2

Sau đó, bạn có thể có một số vấn đề khác với thiết lập các plugin mà không có gì nghiêm chỉnh để làm với ASP.NET MVC. Theo như mã phía máy chủ có liên quan, nó sẽ tạo ra đánh dấu tương đương nghiêm ngặt với những gì bạn đã thể hiện trong câu hỏi của bạn. Cũng lưu ý rằng khi sử dụng 'data_placeholder' ở phía máy chủ, helper sẽ tự động chuyển đổi nó thành' data-placeholder' khi tạo thuộc tính tương ứng. –

0

như các dudes khác đã đề cập, có vẻ như vấn đề của bạn không phải là phía máy chủ (dao cạo), nó thực sự là phía máy khách (có thể là khởi tạo plugin Jquery của bạn).

có thể khi khởi tạo plugin được gọi là DOM html chưa được tạo, hãy đặt tập lệnh khởi chạy plugin ở cuối phần thân hoặc bên trong $(document).ready() và đừng quên xem bảng điều khiển để xem có bất kỳ lỗi

mã hóa hạnh phúc

Các vấn đề liên quan