2013-03-26 51 views
1

我不知道如何調用這個,所以任何建議來改變標題是受歡迎的。jqgrid轉換文本

我試圖將一個相當大的文本轉換爲像'只顯示一些字符...'。 很明顯,大文本以相同的字符串開頭,但它要長得多。

我的網格是隻讀的,當用戶單擊每行時,我會將整個數據顯示到對話框中。 輸入字段(在另一個頁面中)是一個文本區域,用戶可以寫下巨大的數據以顯示在網格中。我想保持每一行高度相同。 另外我知道我必須消毒文本,以避免特殊字符和新行

我想這應該是一個colModel選項,但我找不到它。 類似的東西:

colModel :[ 
     {name:'notes', index:'notes', maxcharlength: 20}, 

非常感謝。

+1

請參閱[答案](http://stackoverflow.com/a/6861490/315935)。你可以考慮設置'max-height'或者像[這裏]描述的那樣(http://stackoverflow.com/a/6574194/315935)。 – Oleg 2013-03-26 17:07:10

+0

答案正是我所需要的。此外,你的最大高度的建議看起來很有趣。非常感謝!! 也只是在以防萬一,你知道是否有一個簡單的方法來剝離HTML使用jqgrid?如果沒有,我會在服務器端使用jsoup。 再次感謝 – 2013-03-27 08:53:54

+0

歡迎您!決定是否需要向用戶顯示*原始長文本*是非常重要的。例如,看看[另一個答案](http://stackoverflow.com/a/13330814/315935)和[這一個](http://stackoverflow.com/a/8420646/315935)。例如,您可以提供用戶查看全文的方式,但只能在查看和編輯窗體中顯示網格中的剝離數據。在這種情況下,你不應該在服務器端削減數據。而不是你應該使用某種剝離客戶端與CSS或例如自定義格式化。 – Oleg 2013-03-27 09:15:23

回答

1

您可以製作一個CSS類,它將剪切文本並顯示省略號,並使用classes屬性將其分配給列。 CSS類是這樣的:

.ellipsis { 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    overflow: hidden; 
} 

然後將其分配到這樣的列:

colModel :[ 
    {name:'notes', index:'notes', maxcharlength: 20, classes: 'ellipsis'}, 
+0

謝謝clav。你的回答非常類似於@ Oleg's。 – 2013-03-27 08:58:03

+0

嗨Clav。我們在jqgrid中有maxcharlength屬性嗎? Bcoz我嘗試使用省略號與maxcharlength,但它不工作。它僅基於寬度工作。 – PCA 2014-02-20 09:26:38

+0

Hi @Babu Arumugam, 'maxcharlength'選項不存在。這是我的猜測,以防jqGrid默認實現了省略號。 Regards – 2014-03-28 11:52:27

0

在結束和感謝奧列格的鏈接我可以填補電網剝離html和顯示省略號這種方式:

首先一個css:

.ui-jqgrid tr.jqgrow td.textInDiv div { 
    max-height: 50px; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    -o-text-overflow: ellipsis; 
} 

其次在列自定義格式:

colModel :[ 
    {name: 'notes', classes: "textInDiv", 
      formatter: function (v) { 
       return '<div>' + jQuery.jgrid.stripHtml(v) + '</div>'; 
      } 
    } 
] 

備註來自服務器爲html,所以請注意jqgrid函數去掉html標籤。 在Oleg的鏈接中,他使用jqgrid.htmlEncode來轉義標籤。

希望這有助於他人。

+0

@Oleg我發現了stripHtml函數,它正是我想要的 – 2013-03-27 10:42:30