如何在多行文本框的每一行中添加数字

本文关键字:一行 数字 添加 文本 | 更新日期: 2023-09-27 18:09:13

我在c#/asp.net中有一个多行文本框,我想在用户按Enter时添加每行的数量....

我试过那样做,但它不起作用。

如何在多行文本框的每一行中添加数字

在文本框上添加一个inputchanged事件,每当输入发生变化时,查看是否按下了enter键。如果是,则获取文本框的当前文本并将/n附加到它

虽然不是一个万无一错的解决方案-下面将添加行号。

<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" onKeyup="onTextBox1Change(this)"></asp:TextBox>
function onTextBox1Change(ele) {
            if (event.keyCode == 13) {
                var lnNumber = (ele.value.match(/'n/g) || []).length;
                ele.value = ele.value + (lnNumber+1);
            }
        }

您仍然需要处理编辑(例如,如果用户返回到第一行,然后从中间的某个地方按enter会发生什么)

像这样为textBox添加onkeypress事件

<asp:TextBox ID="TextBox1" clientidmode="Static" runat="server" onkeypress="return EnterEvent(event)"></asp:TextBox> 

和EnterEvent方法中的

function EnterEvent(e) {
        if (e.keyCode == 13) {
            // get the textbox text and append /n to it
        }
    }

在这里提供代码会更容易。在这种情况下,KeyDown事件可以帮助您。

后台代码:

private void txtBox1_KeyDown(object sender, KeyEventArgs e)
{
    //Insert the code you want to run when the text changes here!
    if(e.KeyData == Keys.Enter)
    {  
       //try from the below
       //txtShowCount = ViewState["count"] + 1;
       txtBox1.Text = txtBox1.Text + "'r'n";
       txtBox1.Text = txtBox1.Text + Environment.NewLine;
    }
}   

如果不是数据绑定,上面可能会对你有帮助