1

SQLServerデータベースにとを含むテキストがありnew line characterますcarriage return character。この値を文字列変数に割り当てると、最初のスクリーンショットに示すように、これらの改行と復帰が表示されます。ただし、レンダリングされると、これらの値は表示されません(2番目のスクリーンショットを参照)。

renderグリッドビューで次のコードを使用して改行と復帰文字を返すにはどうすればよいですか?

コード

protected void Page_Load(object sender, EventArgs e)
{

    List<Account> result = new List<Account>();
    string value = DisplayTest("Daily Tax Updates:\r\n");

    Account acc = new Account(){Description = value};
    result.Add(acc);

    grdFinancialAmount.DataSource = result;
    grdFinancialAmount.DataBind();


}

public class Account
{
    public string Description { get; set; }
}


private static string DisplayTest(string searchValue)
{
    string test = String.Empty;
    string connectionString = "Data Source=.;Initial Catalog=LibraryReservationSystem;Integrated Security=True;Connect Timeout=30";

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        string commandText = @"SELECT AccountType,* 
                          FROM Account 
                          WHERE AccountType LIKE @input ESCAPE '\'";
        using (SqlCommand command = new SqlCommand(commandText, connection))
        {
            command.CommandType = System.Data.CommandType.Text;
            command.Parameters.AddWithValue("@input", "%" + searchValue + "%");

            using (SqlDataReader reader = command.ExecuteReader())
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {

                        test = reader.GetString(0);
                    }
                }
            }
        }
    }

    return test;

}

マークアップ

<asp:GridView ID="grdFinancialAmount" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField HeaderText="Text">
            <ItemTemplate>
                <%# Eval("Description")%>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

データベースからの変数値

データベースからの変数値

レンダリングされた値

レンダリングされた値

4

2 に答える 2

1

\r\nをwith に置き換えると\\r\\nうまくいくはずです。

\r\n私はこれを誤解しました。文字の return の代わりに表示したかったのですが、コメントにあるように、 に置き換えて<br/>ください。

string.Replace("\r\n", "<br/>");
于 2013-02-12T14:01:17.897 に答える
0

レンダリングされた値は html です。html\r\nを挿入すると、ソース html が変更される可能性がありますが、レンダリングされる内容にはまったく影響しません。

これは、レンダリングされたウィンドウで「ソースを表示」することで確認できます。

ここでのアプローチの 1 つは、レンダリングする前に、出現するすべての文字列を 、ハード ライン ブレークに置き換えること\r\nです<br/>

または<p>、文字列の先頭にタグを追加し、文字列の末尾にタグを追加してから、出現箇所を</p>すべて に置き換える、つまり段落に分割することもできます。これはおそらく、2 つのよりエレガントなアプローチです。\r\n</p><p>

ここには他のオプションもあります。crlf 文字を html が理解できるものに変換する必要があることに注意してください。

于 2013-02-12T14:17:21.670 に答える