2017-07-04 1 views
1

Es ist möglich, einen Ereignisklick mit JavaScript aufzurufen? Wie?Ereignis aufrufen mit JavaScript aufrufen

Ich versuche dieses Ereignis aufzurufen, wenn auf eine Schaltfläche geklickt wird.

ich Buttons dynamisch so die ids Änderung ständig

Hier zu schaffen ist, wie ich die Tasten dynamisch machen und ordnen das Ereignis klicken

protected void Page_Init(object sender, EventArgs e) 
     { 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "showAndHide();", true); 

      Button Btn_clic = (Button)sender; 
      var name = Btn_clic.Text; 

      List.ListUsers listArea = new List.ListUsers(); 
      List<Data.Area> Area = listArea.AreaList(); 

      List<Data.Area> ListOfEquiposOk = Area.Where(x => x.AREA == name && x.STANDBY == 0).ToList(); 

      List<Button> Botones = new List<Button>(); 

      var TeamFCH = ListOfEquiposOk.Select(x => x.TEAM).Distinct().ToList(); 

      foreach (var team in TeamFCH) 
      { 
       Button newButton = new Button(); 
       newButton.CommandName = "Btn" + Convert.ToString(team); 
       newButton.ID = "Btn_" + Convert.ToString(team); 
       newButton.Text = team; 
       newButton.CommandArgument = name; 

       newButton.Click += new System.EventHandler(newButton_Click); 


       Botones.Add(newButton); 

       GoodPanel.Controls.Add(newButton); 
       newButton.CssClass = "btn-primary outline separate"; 
      } 
     } 

protected void newButton_Click(object sender, EventArgs e) 
     { 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "ModalGood();", true); 

      Button Btnclick = (Button)sender; 
      var team = Btnclick.Text; 
      string name = Btnclick.CommandArgument; 

      List.ListUsers listArea = new List.ListUsers(); 
      List<Data.Area> Area = listArea.AreaList(); 

      List<Data.Area> ListOfToolsOk = Area.Where(x => x.AREA == name && x.TEAM == team && x.STANDBY == 0).ToList(); 

      var ToolArea = ListOfToolsOk.Select(x => x.TEAM); 
      Grv_Eng.DataSource = ListOfToolsOk; 
      Grv_Eng.DataBind(); 
     } 
+1

Sie gemeint Java anstelle von JavaScript? –

+0

Warum fügen Sie es dann nicht zur Schaltfläche hinzu? ''. Wenn du das getan hast, sollte @ Aenadons Antwort funktionieren. – VDWWD

+0

@ Adrián nop, ich meine wirklich JavaScript –

Antwort

1

Wenn Sie ein OnClick-Ereignis zuweisen möchten, tun Sie es wie folgt.

Button Btnclick = new Button(); 
Btnclick.Click += newButton_Click; 
Btnclick.Text = "MyButton"; 
Btnclick.ID = "MyButtonID"; 

PlaceHolder1.Controls.Add(Btnclick); 

Und wenn Sie die dynamische ID verweisen möchten, verwenden Sie FindControl und ClientID auf der aspx Seite.

document.getElementById("<%= PlaceHolder1.FindControl("MyButtonID").ClientID %>").click 
+0

ich habe so, aber mein Ereignis nicht feuern, ich weiß nicht, warum Sie hier https://stackoverflow.com/questions/44905518/event-click-doesnt-get-fired?noredirect=1#comment76790267_44905518 –

+0

Wahrscheinlich, weil Sie den Klick auf jeder Seite laden müssen, und das enthält ein PostBack. Wenn Sie also das 'Click' in einem anderen Button-Ereignis zuweisen, müssen Sie sicherstellen, dass Sie es beim nächsten Laden der Seite erneut ausführen. – VDWWD

+0

also in der page_load muss ich das Ereignis wie 'Event (sender, e)' setzen? –

1

einen onClick Zuhörer auf Ihre Taste zuweisen.

+0

Ich erstelle die Schaltflächen dynamisch, so die ID ständig ändern –

+0

Fügen Sie hinzu, wenn Sie die Schaltfläche erstellen. –

+0

oder document.getElementsByClassName()/.getElementsByTagName() – padeg

0

Hier gehen Sie versuchen, diese für dynamisch erstellte Schaltflächen

$(document).on('click', '#id', function(){}); 
+0

Wenn sich Ihre IDs jedes Mal ändern, weisen Sie ihnen eine Klasse zu und ersetzen Sie einfach #id durch .className – Aniket

0

können Sie verwenden, um ein data- Attribut-ID die Tasten von Javascript und dann legen Sie einfach auf das JavaScript-Event:

So , von der Serverseite können Sie dies tun:

newButton.Attributes["data-dynamic-button"] = team; 

Und Sie können ich Stellen Sie dies auf der Client-Seite:

$("[data-dynamic-button]").click(function (event) { 
    event.preventDefault() 
    alert($(event.currentTarget).data("dynamic-button")); 
}); 
Verwandte Themen