0

キャリッジ リターンを html ブレークに置き換える方法を見つけようとしています。cr13だと思いますか?完全にはわかりません。私はプログラミングが初めてです。コンテンツページがあります。だから私はコンテンツ領域にjavascriptを設定しています。ページには他にも多くの JavaScript があります。1 つは、列の表示と非表示を切り替えます。だから私は列を見つける方法があります。しかし、私は細胞を見つける必要があると思いますか? これが必要になるのは 1 つの列だけです。私は、vb.netでasp.netを使用して、SQL Server 2008 dbをインポートしています。残念ながら、ボタンをクリックしたときにページがリロードされるのを避けるために、これは JavaScript だけで行う必要があります。

ありがとう。

    function showComments() {
        Begincol_num = 8
        Endcol_num = 9
        Commentcol_num = 7
        rows = document.getElementById("<%=GridView1.ClientID%>").rows;
        for (i = 0; i < rows.length; i++) {

            rows[i].cells[Begincol_num].style.display = "none";
            rows[i].cells[Endcol_num].style.display = "none";
            rows[i].cells[Commentcol_num].style.display = "";

        }
    }

アイデアは、js を配置して、この関数内で cr を br に置き換えることです (可能な場合)。コメントセルで置換をどこから開始するかについて、私は途方に暮れています。現在、コメント欄には 30 個のコメント セルがあり、今後も増えていきます。この関数は、サーバーに戻ることを意図していないボタンのクリックで呼び出されます。これは、js のみが意味するものです。

私はできるだけ明確にしようとしています。私はvbとaspを知っていますが、jsは私には意味がありません.

お手伝いありがとう。

4

2 に答える 2

0

JavaScript では、改行は改行文字「\n」で表されます。新しい行を に置き換えたい場合は<br />、文字列置換機能を使用します

var stringWithBR = stringVarName.replace("\n", "<br />");
于 2012-05-10T01:21:43.440 に答える
0

コメントがセル内に直接含まれており、その間に他のタグがないと仮定すると、次のようにすることができます。

// ...
 for (i = 0; i < rows.length; i++) {
  rows[i].cells[Begincol_num].style.display = "none";
  rows[i].cells[Endcol_num].style.display = "none";
  var commentCell = rows[i].cells[Commentcol_num];
  commentCell.style.display = "";
  commentCell.innerHTML = commentCell.innerHTML.replace("/\n/g", "<br />");
 }
// ...

しかし、コメントを表示する際にそのようなことを行うのは、まったくクリーンな解決策ではありません。サーバー上で直接行うか、ロード時に行う必要があります。そうしないと、コメントを複数回表示および非表示にすると、不要な作業が行われることになります。これは、パフォーマンスではなく、間違いなく設計上の問題です。

コメント内の HTML タグ内に改行があると、やはり問題が発生する可能性があります。innerTexttextContentを使用することでこれを防ぐことができますが、タグが消去されます。より良いソリューションは複雑です。

于 2012-06-13T10:48:51.180 に答える