2008-12-03 26 views
5

Tôi có một GridView với một số lĩnh vực, một trong số đó có khả năng có thể có một giá trị rộng điên trong nó như thế này:Wrapping GridView văn bản mà không có một không gian có thể nhìn thấy

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Nếu rằng đại loại như vậy là trong lĩnh vực này, tôi muốn nó quấn.

Tôi có thể dễ dàng chèn một ký tự bằng mã 50 ký tự trở lên ... nhưng ký tự nào? Nếu tôi sử dụng \ r \ n hoặc một gian hoặc tương tự, sau đó đôi khi các thiết lập không quấn (vì 50 ký tự một dãy ghế khác là rộng hơn), và tôi nhận được một cái gì đó như thế này:

mmmmmmmmmm
mmmmm
llllllllll llllllllll llll

Tôi không muốn những khoảng trống đó hiển thị; Tôi chỉ muốn dòng để bọc ở đó nếu nó có thể, nhưng nếu không thể hiện gì:

mmmmmmmmmm
mmmmm
llllllllllllllllllllllll

Ngoài ra, tôi thà rời HtmlEncode trên nếu có thể. Có cách nào để làm việc này không?

Trả lời

0

Bạn có thể thực hiện một số việc ở đây.

Một tùy chọn là thay đổi cột được đề cập thành Mẫu biểu mẫu và đặt một div vào đó, với khả năng tạo thanh cuộn. Tôi muốn thực sự là đề xuất điều này.

Nếu bạn sử dụng CRLF (\ r \ n) thì bạn cần bọc nó vào các thẻ PRE và bạn muốn thay đổi phông chữ thành phông chữ đơn cách (chẳng hạn như Chuyển phát nhanh) để 50 ký tự sẽ luôn là cùng độ dài.

Nếu bạn muốn có giải pháp HTML, thì việc chèn thẻ BR vào văn bản ở vị trí thích hợp là vấn đề.

Bây giờ, bạn cũng muốn đảm bảo rằng bạn đang kiểm tra độ dài của chuỗi (đảm bảo rằng nó dài hơn độ dài số ma thuật của bạn) và nó không chứa khoảng trống (như một khoảng trắng cho phép gói) trước khi chèn CRLF hoặc BR.

4

dính những dòng này của CSS trong một lớp học, và dính vào lớp đó trong mục lưới của bạn

white-space: -moz-pre-wrap; /* Mozilla, supported since 1999 */ 
white-space: -pre-wrap; /* Opera 4 - 6 */ 
white-space: -o-pre-wrap; /* Opera 7 */ 
white-space: pre-wrap; /* CSS3 */ 
word-wrap: break-word; /* IE 5.5+ */ 
+0

Tôi muốn sử dụng giải pháp CSS duy nhất như thế này +1. Thêm crap vào đầu ra là gây phiền nhiễu và nên tránh. Xử lý các công cụ giao diện người dùng trong đánh dấu, tôi nói. –

0

Bạn có thể sử dụng các thuộc tính trường mẫu sau trong GridView

ItemStyle-Wrap="true" ItemStyle-Width="100" 

Bạn phải đặt chiều rộng, nếu không văn bản sẽ không được bao bọc.

5

ItemStyle-Wrap = "true" ItemStyle-Width = "100" không hoạt động cho một từ dài không có khoảng trống.

Tìm thấy giải pháp:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
      { 
       if (e.Row.RowType == DataControlRowType.DataRow) 
       { 
        e.Row.Cells[1].Attributes.Add("style", "word-break:break-all;word-wrap:break-word"); 
       } 
      } 

nơi tế bào [1] là cột bạn muốn quấn.

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