我在c#/ asp.net中有一个多行文本框,我想在用户按Enter键时添加每行的编号....
我试图这样做,但它没有奏效。
答案 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;
}
}
如果不是数据绑定
,上述内容可能对您有所帮助