1

これをどのように呼ぶかわからないので、タイトルを変更する提案を歓迎します。

非常に大きなテキストを「いくつかの文字を表示するだけです...」のようなものに変換しようとしています。明らかに、大きなテキストは同じ文字列で始まりますが、はるかに長くなります。

私のグリッドは読み取り専用であり、ユーザーが各行をクリックすると、データ全体がダイアログに表示されます。(別のページの)入力フィールドはテキスト領域であるため、ユーザーはグリッドに表示する巨大なデータを書き留めることができます。各列を同じ高さに保ちたいです。また、特殊文字や新しい行を避けるためにテキストをサニタイズする必要があることも知っています

それを行うにはcolModelオプションが必要だと思いますが、見つかりませんでした。そんな感じ:

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

どうもありがとう。

4

2 に答える 2

1

classesテキストをクリップして楕円を表示するCSSクラスを作成し、属性を使用して列に割り当てることができます。CSSクラスは次のようになります。

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

次に、次のように列に割り当てます。

colModel :[
    {name:'notes', index:'notes', maxcharlength: 20, classes: 'ellipsis'},
于 2013-03-26T16:55:04.720 に答える
0

最後に、Olegのリンクのおかげで、グリッドストリッピングhtmlを埋めて、このように省略記号を表示することができました。

最初のcss:

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

列の2番目のカスタムフォーマッタ:

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

メモはサーバーからhtmlとして送信されるため、htmlタグを削除するjqgrid関数に注意してください。Olegのリンクでは、彼はjqgrid.htmlEncodeを使用してタグをエスケープしています。

これが他の人に役立つことを願っています。

于 2013-03-27T10:18:53.680 に答える