使用JavaScript调用事件单击
是否可以使用JavaScript调用事件单击?怎么做 我试图在单击按钮时调用此事件 我正在动态创建按钮,以便id不断变化 下面是我如何动态创建按钮并分配事件单击使用JavaScript调用事件单击,javascript,asp.net,Javascript,Asp.net,是否可以使用JavaScript调用事件单击?怎么做 我试图在单击按钮时调用此事件 我正在动态创建按钮,以便id不断变化 下面是我如何动态创建按钮并分配事件单击 protected void Page_Init(object sender, EventArgs e) { ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "showAndHide();", true);
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();
}
受保护的无效页\u Init(对象发送方,事件参数e)
{
ScriptManager.RegisterStartupScript(this,this.GetType(),“Pop”,“showAndHide();”,true);
按钮Btn_clic=(按钮)发送器;
var name=Btn_clic.Text;
List.ListUsers listArea=新建List.ListUsers();
列表区域=listArea.AreaList();
List ListOfEquiposOk=Area.Where(x=>x.Area==name&&x.STANDBY==0.ToList();
List BOTONE=新列表();
var TeamFCH=ListOfEquiposOk.Select(x=>x.TEAM.Distinct().ToList();
foreach(TeamFCH中的var团队)
{
按钮newButton=新按钮();
newButton.CommandName=“Btn”+Convert.ToString(团队);
newButton.ID=“Btn_”+Convert.ToString(团队);
Text=team;
newButton.CommandArgument=名称;
newButton.Click+=newsystem.EventHandler(newButton\u Click);
添加(纽扣);
GoodPanel.Controls.Add(新按钮);
newButton.CssClass=“btn主轮廓分离”;
}
}
受保护的无效新按钮单击(对象发送方,事件参数e)
{
ScriptManager.RegisterStartupScript(this,this.GetType(),“Pop”,“ModalGood();”,true);
按钮Btnclick=(按钮)发送器;
var team=Btnclick.Text;
string name=Btnclick.CommandArgument;
List.ListUsers listArea=新建List.ListUsers();
列表区域=listArea.AreaList();
List 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_工程数据绑定();
}
为按钮分配一个onClick侦听器
document.getElementById("your-id").click = function () {
newButton_Click();
}
如果要分配OnClick事件,请执行以下操作
Button Btnclick = new Button();
Btnclick.Click += newButton_Click;
Btnclick.Text = "MyButton";
Btnclick.ID = "MyButtonID";
PlaceHolder1.Controls.Add(Btnclick);
如果要引用动态ID,请在aspx页面上使用FindControl
和ClientID
document.getElementById("<%= PlaceHolder1.FindControl("MyButtonID").ClientID %>").click
document.getElementById(“”)。单击
在这里,您可以尝试动态创建按钮
$(document).on('click', '#id', function(){});
您可以使用
data-
属性从javascript中标识按钮,然后只需附加到javascript事件:
因此,从服务器端可以执行以下操作:
newButton.Attributes["data-dynamic-button"] = team;
您可以在客户端实现这一点:
$("[data-dynamic-button]").click(function (event) {
event.preventDefault()
alert($(event.currentTarget).data("dynamic-button"));
});
你是说Java而不是JavaScript?那为什么不把它添加到按钮上呢<代码>。如果您已经这样做了,@Aenadon的答案应该会起作用。@Adrián nop,我的意思是JavaScriptMy bad,我没有阅读ScriptManager。我是动态创建按钮的,所以在创建按钮时id会不断更改。或者使用document.getElementsByCassName()/.getElementsByTagName()@Daniel我在创建按钮时添加了这样的按钮,但是我的事件没有触发,我不知道为什么您可以在这里查看,可能是因为您需要在每个页面加载时分配单击,这包括回发。因此,如果您在另一个按钮事件中分配了
单击
,那么您必须确保在下一个页面加载时再次执行它。因此,在页面加载中,我需要放置类似事件(发送者,e)
?我测试了您的代码片段。它起作用了。只需将其放入页面加载
。从一个按钮开始工作,然后从那里开始工作。不要将按钮存储在列表中,这毫无意义。另外,如果要使用命令参数
,则需要指定一个命令
,而不是一个单击
,您建议用什么代替按钮列表?我之所以使用它,是因为在我的XML中有许多“团队”,这就是为什么每次给他们分配一个类并用.className替换#id时,id都会改变的原因