ASP.NET OnTextChanged method

本文关键字:method OnTextChanged NET ASP | 更新日期: 2023-09-27 18:09:17

我有ASP。NET网站,有一个页面,当用户必须在文本框中输入文本和图像应该出现取决于所输入的文本。一切都在工作,但图像只出现当你按下Enter,有没有一种方式出现的图像,因为你输入的字母,而不是按下Enter?

<asp:TextBox ID="initials" runat="server" Width="50px" OnTextChanged="initials_TextChanged" AutoPostBack="true"></asp:TextBox> 

背后代码:

protected void initials_TextChanged(object sender, EventArgs e) 
{ 
    if(this.initials.Text == "A") { prvwleft.ImageUrl = "~/Images/left/A1.jpg"; } 
} 

ASP.NET OnTextChanged method

在asp.net中,当您离开焦点时,OnTextChanged事件会触发。

在你的情况下,你应该去KeyDown事件。

Asp.net文本框没有服务器端KeyDown事件,所以我们将不得不使用jquery:

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>
<script type="text/javascript" language="javascript">
    $(document).ready(function(){
        $('#initials').keypress(function () {
            if ($(this).val() == "A") {
                $('#prvwleft').ImageUrl = "~/Images/left/A1.jpg"; 
            }
            else {
                $('#prvwleft').ImageUrl = "~/Images/left/A1.jpg"; 
            }
        })
    });        
</script>

你需要在javascript中像这样调用onkeypress事件

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
    function tSpeedValue(txt)
    {  
        alert("hi");
        var at = txt.value;
        alert(at);
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server" onkeypress="tSpeedValue(this)"></asp:TextBox>
    </div>
    </form>
</body>
</html>

如果你想在服务器端调用它

 <asp:TextBox ID="TextBox2" runat="server"   onkeypress="__doPostBack(this.name,'OnKeyPress');" ></asp:TextBox>

和。cs页面的代码应该像

protected void Page_Load(object sender, EventArgs e)
    {
        var ctrlName = Request.Params[Page.postEventSourceID];
        var args = Request.Params[Page.postEventArgumentID];
        if (ctrlName == TextBox2.UniqueID && args == "OnKeyPress")
        {
            TextBox2_OnKeyPress(ctrlName, args);
        }
    }

 private void TextBox2_OnKeyPress(string ctrlName, string args)
        {
            //your code goes here
        }