如何在多行文本框C#/ ASP.net中的每个新行中添加数字

时间:2015-08-23 07:46:16

标签: c# asp.net

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

我试图这样做,但它没有奏效。

4 个答案:

答案 0 :(得分:3)

在文本框中添加inputchanged事件,每当输入更改时,查看是否按下了输入。如果是,则获取文本框的当前文本并将/n附加到其中

答案 1 :(得分:1)

将onkeypress事件添加到textBox,如下所示

<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
        }
    }

答案 2 :(得分:1)

虽然不是万无一失的解决方案 - 但以下内容会添加行号。

<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键会发生什么情况)

答案 3 :(得分:1)

如果您在这里提供代码会更容易。在这种情况下,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;
    }
}   

如果不是数据绑定

,上述内容可能对您有所帮助