如何设置asp.net's标签's文本,并在服务器端获取setted值

How to set asp.net 's label 's text using javascript and get setted value on server side

本文关键字:服务器端 获取 setted 文本 标签 net asp 何设置 设置      更新时间:2023-09-26

我有两个关于javascript和asp.net的问题,我想要的结果是:当按下文本框键时,做出相同的标签更改,以下是我要做的:

在asp.net页面中:

<form id="form1" runat="server">
<div>
    <asp:TextBox ID="TextBox1" runat="server" onkeypress="okpress();"></asp:TextBox>
    <br />
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="test1" />
</div>
</form>

这是我的脚本:

<script type="text/javascript">
    function okpress() {
        //alert('Your keypress on TextBox1.');
        var v1 = document.getElementById("Label1");
        v1.innerHTML = document.getElementById("TextBox1").value;
    }
</script>

当我测试结果时,我发现当textbox1按键时,label1的文本确实发生了变化,但奇怪的是,label1文本总是缺少一个与textbox1对应的字符,也就是说,如果我在textbox1中键入"abcd",label1只显示"ab"。

另一个问题是关于按钮,当我在.cs文件中写下这段代码时:

    protected void test1(object sender, EventArgs e)
    {
        string s1 = Label1.Text;
        return;
    }

并在"return"处添加一个断点,我发现无论我在textbox1中键入什么,变量s1总是"Label1"

我想这两个问题可能很容易经历,但我就是解决不了,谢谢你的帮助。

您可以将Keypress事件更改为Keyup事件,并尝试使用相同的Script。。

<asp:TextBox ID="TextBox1" runat="server" onKeyup="okpress();"></asp:TextBox>

对于第二个问题,如果我们在客户端设置标签的innerHtml,则很难在服务器端访问它。。

在第二种情况下,您可以使用这种方法。

声明Hidden input Control。。

 <input type="Hidden" id="Hidden1" value="" clientidnode="Static" runat="server">

之后,您可以将标签的innerHtml设置为此控件。

document.getElementid('Hidden1').value=v1.innerHTML;

之后,您可以访问服务器端的隐藏控件,如下所示。。

protected void test1(object sender, EventArgs e)
    {
        string s1 = Hidden1.value;
        return;
    }