none
ASP.NET中TEXTBOX的使用 RRS feed

  • 问题

  •  <asp:TextBox ID="TextBox1" runat="server" Height="150px" TextMode="MultiLine" ><asp:TextBox>

    这是一个文本框,一个普通的文本框。

    问题一:怎么样才能让里面显示的值是这种形式,如下:

    第一行

    第二行

    第三行

    ......

    问题二:怎么将里面的值存到数据库后,读出来的,还是上面的那种形式?

    2011年7月19日 5:28

答案

全部回复

  • Hi:

    1.User输入时候按Enter键不就可以了?

     

    2.不用管它,就这样直接存到数据库,捞出来时再用TextBox显示就行了。

    补充:或者你也可以在存入数据到数据表前先
    TextBox1.Text.Replace(System.Environment.NewLine,"<br/>");
    再存到数据库里,
    捞出来时用Label控件显示就有换行效果了。


    Shadowと愉快なコード達
    Please correct me if my concept is wrong
    2011年7月19日 5:40
  •  <asp:TextBox ID="TextBox1" runat="server" Height="150px" TextMode="MultiLine" ><asp:TextBox>

    这是一个文本框,一个普通的文本框。

    问题一:怎么样才能让里面显示的值是这种形式,如下:

    第一行

    第二行

    第三行

    问题一,看示例代码——


      <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>

    protected void Page_Load(object sender, EventArgs e)
            {
                string s = "第一行\n第二行\n第三行";
                TextBox1.Text = s;
            }

     

    问题二,设法把string给保存到数据库中去,然后取出来直接赋值给TextBox1即可。我已经使用LINQ完成,请查看验证。

     //存储
                using (WebApplications.DataClasses1DataContext ds = new DataClasses1DataContext())
                {
                    User u = new User();
                    u.UserId = Guid.NewGuid();
                    u.UserName = "第一行\n第二行\n第三行";
                    ds.Users.InsertOnSubmit(u);
                    ds.SubmitChanges();

                    //读取
                    TextBox1.Text = ds.Users.ToArray()[1].UserName;
                }


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    2011年7月19日 5:41
  • 讀出來的時候用String.Replace將char(10)取代成<br/>就可以達到換行的效果。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年7月19日 5:54
  • 是的,我已经通过数据库测试了,但是我还是有个疑问,如果显示为:
    第一行
    第二行
    第三行
    ......
    当然,这里的数据是动态的,我用什么方法可以知道数据有多少行呢?
    2011年7月19日 6:24
  • 我这里有一个方案:

    存到数据库里面的值,取出来的时候,是这样的:第一行\r\n第二行\r\n第三行\r\n......

    代码:

    int count=0;

    string str="第一行\r\n第二行\r\n第三行\r\n......";

    for(int i=0;i<str.Length;i++)

    {

    if(str[i].toString()=="\n")

    {

    count++;

    }

    }

    Response.Write("行数为:"+count.toString());

    但是,想知道,还有没有更简单的方法......

    2011年7月19日 6:37
  • 我这里有一个方案:

    存到数据库里面的值,取出来的时候,是这样的:第一行\r\n第二行\r\n第三行\r\n......

    代码:

    int count=0;

    string str="第一行\r\n第二行\r\n第三行\r\n......";

    for(int i=0;i<str.Length;i++)

    {

    if(str[i].toString()=="\n")

    {

    count++;

    }

    }

    Response.Write("行数为:"+count.toString());

    但是,想知道,还有没有更简单的方法......


    你好:)

    其实只要直接使用“\n“就可以了……^_^

    另外,可以尝试:

    str.Replace(" ","").Split("\n").Length;直接获取数组长度,就是总共多少行


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年7月19日 6:39
  • 使用 Split 方法得到行数

    var str = "第一行\r\n第二行\r\n第三行\r\n......";

    var count = Regex.Split(str, "\r\n").Length;


    知识改变命运,奋斗成就人生!
    2011年7月19日 7:11
    版主
  • 现在又有一个问题了,还是上面的情况,我现在的需求是这样的:

    存到数据库的模板有两种情况。

    情况一:

    没有说明

    第一行说明

    第二行说明

    第三行说明

    ......此时,我要取的是第一行说明到第三行说明的总数

    情况二:

    没有说明

    第一行说明

    第二行说明

    第三行说明

    此时,我要取的也是第一行说明到第三行说明的总数(注:这里没有省略好了,所以,第三行的后面没有\r\n按照你的方式,肯定是行不通的,还有别的方法吗?简单点的。)

    2011年7月20日 1:58