【问题标题】:I want to break line in textarea with shift+enter我想用 shift+enter 在 textarea 中换行
【发布时间】:2014-08-07 08:49:37
【问题描述】:
 <asp:TextBox TextMode="MultiLine" ID="txtComment" runat="server"
  Columns="70" CssClass="commentTxt" onkeypress="getNextElement(this.id,event)"/>                                                       

这是我的带有 textarea 的文本框。

 <script type="text/javascript">
   function getNextElement(id, e) {
            if (e.keyCode == 13) {
                console.log(e);
                if (e.shiftKey) {

                    return true;
                }
                debugger
                $(":input[id=" + id + "]").next().click();
            }

        }


    </script>

这是我的职责。 当我按 shift+enter 时,它将转到文本框中的新行

example : - hello
            hi

但是当我将此文本存储到数据库中时,它将存储为hello hi,但我想要

hello
hi

我该怎么做?

【问题讨论】:

  • 你确定它在没有换行符的情况下将它存储在数据库中吗?在 SQL Server 中,如果您编辑或打开表格,网格将不会显示换行符...但如果您执行 select [textfield] from [mytable] 语句并将结果发送到 text(而不是 grid),您将可能会发现新行确实在那里
  • 另外,如果您将数据库中的值直接显示到 HTML 中,那么您可能需要用 &lt;br/&gt; 标记替换换行符...或使用类似的方式显示它&lt;pre&gt;标签
  • 但是我怎样才能用这些文本来写
  • 您可以在将文本保存到数据库之前用&lt;br/&gt; 替换换行符,或者在从数据库中检索它们之后替换它们。之后我会推荐,因为你会想在显示之前对文本进行 HTML 编码,如果你不小心的话,这也会对 &lt;br/&gt; 标签进行编码

标签: c# javascript asp.net .net


【解决方案1】:

我觉得你有点困惑。如果您说换行符没有保存到数据库中,那么您需要稍微扩展您的问题并演示如何保存数据。但是,如果您说在 MS SQL Server Management Studio 等工具中看不到换行符,请不要为此感到压力,因为查询分析器的结果窗格应该用于预览格式有限的数据...这意味着您将看不到换行符(\n)

【讨论】:

  • 插入这些文本时如何存储 \n 字符..?
【解决方案2】:

你可以使用

txtComment.Text.Replace("\r\n", "<br/>")

所以当你输入它时,将它替换为&lt;br/&gt;,这样你就会得到如下输出

hello<br/>hi

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多