1

在将基于控制台的应用程序集成到基于 Web 的应用程序的过程中,我遇到了以下问题:

我需要在多行文本框中显示数据(根据要求),以便每条记录都显示在文本框中,而不会覆盖前一条(它应该在下一行)。

对于 Windows 窗体,我使用了以下代码:

        if (reader.HasRows)
        {
            while (reader.Read())
            {
                predicted_grade = reader["Domain"].ToString();
                priority = "Priority: " + i;
                predicted_grade = priority +" --- "+predicted_grade + "\r\n";
                textBox2.AppendText(predicted_grade);
                i++;
            }
        }

但由于 AppendText 属性不在 ASP.net 网站中运行,我不知道该怎么做。请指导我,我应该如何使数据显示为:

Code | Course Name | Predicted_Grade
1    |   Science   |  A+
2    |   Maths     |  B
3    |   History   |  C

使用多行文本框

4

2 回答 2

1

您可以通过修改您的 ASP.NET 页面中的 AppendText 功能

predicted_grade = priority +" --- "+predicted_grade + "\r\n";
textBox2.AppendText(predicted_grade);

predicted_grade = priority +" --- "+predicted_grade + Environment.NewLine;
textBox2.Text += predicted_grade;

或者,如果您在项目的许多页面中使用,您可以为 TextBox 控件AppendText()创建扩展方法:AppendText

public static class MyExtensions
{
    public static void AppendText(this TextBox textBox, String text)
    {
        textBox.Text += text;
    }
}

要使用它,只需调用:

predicted_grade = priority +" --- "+predicted_grade + Environment.NewLine;
textBox2.AppendText(predicted_grade);

您还可以使用扩展方法\r\n为您处理:

    public static void AppendLine(this TextBox textBox, String text)
    {
        textBox.Text += text + Environment.NewLine;
    }

要使用它,只需调用:

predicted_grade = priority +" --- "+predicted_grade;
textBox2.AppendLine(predicted_grade);

P/S:\r\n在 ASP.Net TextBox 中不起作用,因此您需要使用 Darren 提到的 NewLine

于 2013-04-28T12:54:39.657 回答
1

您可以使用Environment.NewLine

textBox2.Text = predicted_grade + Environment.NewLine;

http://msdn.microsoft.com/en-GB/library/system.environment.newline.aspx

于 2013-04-28T12:06:30.960 回答