2011-02-10 39 views
8

Tôi biết bạn có thể sử dụng thuộc tính DataType với trình trợ giúp html EditorFor để chỉ định rằng thuộc tính cụ thể của thực thể mô hình sẽ được hiển thị dưới dạng nhiều dòng trường nhập.Sử dụng Html.EditorFor để tạo vùng văn bản với số hàng và cột cụ thể

Điều gì xảy ra nếu tôi muốn chỉ định số hàng và cột mà vùng văn bản phải có?

Trong mô hình:

[DataType(DataType.MultilineText)] 
public string HTMLText { get; set; } 

Trong giao diện:

@Html.EditorFor(x => x.HTMLText) 

kết quả Wanted:

<textarea id="HTMLText" rows="10" cols="40">value</textarea> 

Có cách nào để tạo ra loại mã này mà không sử dụng @ Html.Textarea() helper?

Trả lời

8

Không chắc chắn cách đặt hàng và cột, nhưng bạn có thể thay đổi CSS của các văn bản đó bằng cách sử dụng lớp .multi-line. Lớp này được thêm vào vùng văn bản khi sử dụng EditorFor để bạn có thể chỉ định chiều rộng và chiều cao trong lớp đó để có được thứ nguyên mong muốn của mình.

.multi-line { height:5em; width:5em; } 
+0

Sử dụng kỹ thuật này sẽ có nghĩa là tôi sẽ phải chỉ định một lớp trong giao diện. Tôi đang tìm cách kiểm soát trực tiếp từ mô hình. – Jason

+0

@ Jason - bạn sẽ chỉ phải chỉ định nó trong chế độ xem nếu bạn đã làm CSS cấp trang. Nếu bạn ném nó vào một bản định kiểu bên ngoài thì nó sẽ không có trong khung nhìn. Tôi biết nó không hoàn toàn trả lời câu hỏi của bạn, nhưng chỉ cho bạn biết rằng đó là một lựa chọn. – amurra

+0

@Lmrini Frozen awnser là cách tiếp cận tốt hơn thay vì thêm một lớp css bạn có thể sử dụng dao cạo để tạo ra các thuộc tính mong muốn. – Bjego

0

Nó trông giống như thế này không còn cần thiết trên MVC 5 khi bạn có @ Html.EditorFor với lĩnh vực DataType.MultilineText.

1

Bạn có thể xác định kích thước và thuộc tính char tương đương với hàng và cột trong Razor/C# ví dụ:

@Html.TextAreaFor(model => model.Longtext, new { htmlAttributes = new { @class = "ctrl-col2 ctrl-col1", @row = "4", @col = "30" } }) 
+0

Cái này chính là awnser đúng! – Bjego

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