Ontextchanged-Ereignis einer Asp:TextBox über Javascript auslösen

Shiv Yadav 12 Oktober 2023
Ontextchanged-Ereignis einer Asp:TextBox über Javascript auslösen

Nun, wenn Sie es nicht mit Ajax oder irgendetwas anderem machen möchten und das normale ASP.NET-Postback genießen möchten, können Sie dies tun (ohne eine andere Bibliothek zu verwenden):

Wenn Sie C# und .NET 2.0 oder höher verwenden, fügen Sie in der Codedatei die folgende Schnittstelle zur Page-Klasse hinzu, sodass sie wie folgt aussieht:

public partial class Default : System.Web.UI.Page, IPostBackEventHandler {}

Dann müssen Sie diese Funktion zu Ihrer Codedatei hinzufügen.

public void RaisePostBackEvent(string eventArgument) {}

Schreiben Sie den folgenden Code in Ihr onclick-Ereignis in JavaScript.

var pageId = '<%=  Page.ClientID %>';
__doPostBack(pageId, argumentString);

Die Codedatei ruft dann die Methode RaisePostBackEvent mit dem Argument eventArgument als String-Argument auf, das von JavaScript übergeben wird. Sie können jetzt jedes andere gewünschte Ereignis aufrufen.

Hier ist die mögliche Lösung des Problems.

WebForm1.aspx.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="textbox.WebForm1" %>

<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>

   <script type="text/javascript">
    function RefreshIt(selectObj) {
      __doPostBack('<%= Page.ClientID %>', selectObj.name);
    }
   </script>
<body>
  <form id="form1" runat="server">
  <div>
     <asp:TextBox runat="server" AutoPostBack="True" ID="txtG1" OnTextChanged="txtG1_TextChanged"
      onmouseout="javascript:RefreshIt(this);" ></asp:TextBox>
    <br />
    &nbsp;<asp:Label ID="Label1" runat="server" Font-Size="Large"></asp:Label>

  </div>
  </form>
</body>
</html>

Wenn Sie Code im Browser ausführen, erhalten Sie die Ausgabe wie folgt:

Feuern Sie das Ontextchanged-Ereignis einer Asp:TextBox über Javascript ab

Wenn Sie den Text in das Eingabefeld eingeben, wird das Ereignis ontextchange ausgelöst und eine Ausgabe (d. h. in roter Farbe) wie folgt ausgegeben:

Ontextchanged-Ereignis einer Asp:TextBox über Javascript auslösen - ontextchange-Ereignis

Sie können die Funktion RefreshIt auf postback als Argument ändern.

Möglicherweise müssen Sie den dahinter stehenden Code kennen und der Seite IPostBackEventHandler hinzufügen und die Funktion RaisePostBackEvent handhaben.

WebForm1.aspx.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace textbox {
  public partial class WebForm1 : System.Web.UI.Page, IPostBackEventHandler {
    protected void Page_Load(object sender, EventArgs e) {}

    public void RaisePostBackEvent(string Arg) {
      if (txtG1.ID == Arg)
        txtG1_TextChanged(txtG1, null);
    }

    protected void txtG1_TextChanged(object sender, EventArgs e) {
      Label1.Text = txtG1.Text;
      Label1.ForeColor = System.Drawing.Color.Red;
      Label1.BackColor = System.Drawing.Color.White;
    }
  }
}

Sie können den nachfolgend erwähnten Code verwenden, um das Ereignis ontextchanged() von asp:TextBox über JavaScript auszulösen.

Autor: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

Verwandter Artikel - JavaScript Ajax