1

私は実際に c# を使用して asp.net プロジェクトの文字列に改行を挿入しようとしています。この文字列を DataRow に配置し、「ds」という名前のデータブルに追加します。完了したら、このデータブル ds をグリッドビューにリンクします。 . これは私のコードです:

            risque.projet = dt.Rows[i]["fk_projet"].ToString();
            risque.release = dt.Rows[i]["fk_release"].ToString();

            //Create the String for adding to the row
            String test = "Project:"+risque.projet+"<br>"+ "Release: "+risque.release;
            drow["Description"] = test;
            Label1.Text = test;


            //Add the row to the datatable.
            ds.Rows.Add(drow);

            //Link the datatable to the gridview
            GridView1.DataSource = ds;
            GridView1.DataBind();

私はこの出力が欲しい:

計画:.......

リリース:.......

しかし、私はいつも : Project:.... Release......

多くの解決策を試しました: -System.Environment.NewLine -\r\n -\n

編集: 私の gridView のコードです。実行時にすべてが作成されるため、グリッドビューには何もありません。

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        EnableSortingAndPagingCallbacks="True" PageSize="5">
        <SelectedRowStyle Wrap="True" />
    </asp:GridView>

しかし、何も機能しません。br タグは機能しますが、文字列をラベルに表示する場合のみです。

私のエラーのアイデアはありますか?解決策はありますか? 私はこれに多くの時間を費やしました。

ありがとうございました、

クエンティン

4

4 に答える 4

3

タグを挿入しても機能するはずですが、列の HtmlEncode プロパティを false に設定します。デフォルトでは、すべてのフィールドが HtmlEncoded であり、もちろん、html タグが html タグのように機能しなくなります。

ただし、これを行う場合は、XSS を防ぐためにコード ビハインドでフィールド値を手動で html エンコードする必要があります。

"Project:" + Server.HtmlEncode(risque.projet )+ "<br />" + "Release: " + Server.HtmlEncode(risque.release)

( Anit -Cross-Site Scripting Library による Server.HtmlEncode よりも HtmlEncode の実装の方が好みですが、それは別の問題です。)

于 2012-05-04T13:44:12.163 に答える
1

この場合、改行タグを連結する代わりに、改行文字 (vbCrLf) を使用できます。

キャリッジ リターン文字は、印刷および表示機能に使用されます。

ただし、vbCrLf は C# には存在しません。vbCrLf の値は "\r\n" です。ということで、以下を試してみてください。

string vbCrLf = "\r\n";
String test = "Project:" + risque.projet + vbCrLf + "Release: " + risque.release;
于 2012-05-04T13:56:41.353 に答える
0

私はあなたが必要だと思う:<br /> 代わりに<br>

于 2012-05-04T13:44:53.943 に答える