C# Asp.Net按钮在javascript中没有ID?
在javascript中识别asp.net控件时遇到一些问题。这是我的代码的一个简单变体,也许你可以看到一个错误 此函数创建一组按钮+标签,可多次调用:C# Asp.Net按钮在javascript中没有ID?,c#,javascript,asp.net-4.0,C#,Javascript,Asp.net 4.0,在javascript中识别asp.net控件时遇到一些问题。这是我的代码的一个简单变体,也许你可以看到一个错误 此函数创建一组按钮+标签,可多次调用: private void AddRow(Panel pnl) { var myButton = new Button(); myButton.Text = "+"; myButton.Attributes.Add("onclick", &qu
private void AddRow(Panel pnl)
{
var myButton = new Button();
myButton.Text = "+";
myButton.Attributes.Add("onclick", "return MyJavascript();");
myButton.Attributes.Add("somevariable", "FOOBAR!");
var lblAnzahl = new Label();
pnl.Controls.Add(myButton);
pnl.Controls.Add(lblAnzahl);
}
这是按钮调用的JS函数:
function MyJavascript(e) {
var sender = event.target || event.srcElement;
var somevar = sender.getAttribute("somevariable");
alert('somevar: ' + somevar);
alert('ID: ' + sender.id);
}
输出为:
somevar:FOOBAR
身份证:
所以我想我找到了正确的发件人,但由于某些原因,ID总是空的。对我来说,最简单的方法是,如果我能以某种方式设置按钮的ID并给自己贴上标签,这样每次调用AddRow()时我都能给它一个唯一的ID,这样我就可以很容易地识别按钮,当然还有属于按钮的标签
我做错了什么?您可以使用
myButton.ClientID
或添加name属性myButton.Attributes.add(“name”、“FOOBAR”)
通过检查确保名称是唯一的,并通过getElementByName在Javascript中检索您可以使用myButton.ClientID
或添加name属性myButton.Attributes.add(“name”,“FOOBAR”)
通过检查确保名称是唯一的,并通过getElementByName在Javascript中检索您可以使用myButton.ClientID
或添加name属性myButton.Attributes.add(“name”,“FOOBAR”)
通过检查确保名称是唯一的,并通过getElementByName在Javascript中检索您可以使用myButton.ClientID
或添加name属性myButton.Attributes.add(“name”,“FOOBAR”)使用检查代码>以确保名称是唯一的,并通过getElementByName在Javascript中检索。您没有在AddRow函数中设置ID
将您的功能更改为:
private void AddRow(Panel pnl, int index)
{
var myButton = new Button();
myButton.ID = "button_" + index; // add this line (the index will guarantee a distinct ID)
myButton.Text = "+";
myButton.Attributes.Add("onclick", "return MyJavascript();");
myButton.Attributes.Add("somevariable", "FOOBAR!");
var lblAnzahl = new Label();
pnl.Controls.Add(myButton);
pnl.Controls.Add(lblAnzahl);
}
您可以这样调用代码:
AddRow(pnl, 0);
AddRow(pnl, 1);
AddRow(pnl, 2);
您没有在AddRow函数中设置ID
将您的功能更改为:
private void AddRow(Panel pnl, int index)
{
var myButton = new Button();
myButton.ID = "button_" + index; // add this line (the index will guarantee a distinct ID)
myButton.Text = "+";
myButton.Attributes.Add("onclick", "return MyJavascript();");
myButton.Attributes.Add("somevariable", "FOOBAR!");
var lblAnzahl = new Label();
pnl.Controls.Add(myButton);
pnl.Controls.Add(lblAnzahl);
}
您可以这样调用代码:
AddRow(pnl, 0);
AddRow(pnl, 1);
AddRow(pnl, 2);
您没有在AddRow函数中设置ID
将您的功能更改为:
private void AddRow(Panel pnl, int index)
{
var myButton = new Button();
myButton.ID = "button_" + index; // add this line (the index will guarantee a distinct ID)
myButton.Text = "+";
myButton.Attributes.Add("onclick", "return MyJavascript();");
myButton.Attributes.Add("somevariable", "FOOBAR!");
var lblAnzahl = new Label();
pnl.Controls.Add(myButton);
pnl.Controls.Add(lblAnzahl);
}
您可以这样调用代码:
AddRow(pnl, 0);
AddRow(pnl, 1);
AddRow(pnl, 2);
您没有在AddRow函数中设置ID
将您的功能更改为:
private void AddRow(Panel pnl, int index)
{
var myButton = new Button();
myButton.ID = "button_" + index; // add this line (the index will guarantee a distinct ID)
myButton.Text = "+";
myButton.Attributes.Add("onclick", "return MyJavascript();");
myButton.Attributes.Add("somevariable", "FOOBAR!");
var lblAnzahl = new Label();
pnl.Controls.Add(myButton);
pnl.Controls.Add(lblAnzahl);
}
您可以这样调用代码:
AddRow(pnl, 0);
AddRow(pnl, 1);
AddRow(pnl, 2);
checksender.getAttribute(“id”)
@RandRandom alert(sender.clientid)返回以可预测方式创建客户端id的“未定义”需求。Check clientid拼写正确:)Checksender.getAttribute(“id”)
@RandRandom alert(sender.clientid)返回“未定义”的需要,以可预测的方式创建客户端id。Check clientid拼写正确:)Checksender.getAttribute(“id”)
@RandRandom alert(sender.clientid)返回“未定义”的需要,以可预测的方式创建客户端id。Check clientid拼写正确:)Checksender.getAttribute(“id”)
@RandRandom alert(sender.clientid)返回“未定义”的需要,以可预测的方式创建客户端id。检查clientid拼写是否正确:)myButton.clientid已就绪,并且也不返回任何内容。我还尝试了var mybutton=document.getElementsByName(“FOOBAR”)[0],但mybutton没有定义。mybutton.ClientID已就绪,并且也不返回任何内容。我还尝试了var mybutton=document.getElementsByName(“FOOBAR”)[0],但mybutton没有定义。mybutton.ClientID已就绪,并且也不返回任何内容。我还尝试了var mybutton=document.getElementsByName(“FOOBAR”)[0],但mybutton没有定义。mybutton.ClientID已就绪,并且也不返回任何内容。我还尝试了var mybutton=document.getElementsByName(“FOOBAR”)[0],但是mybutton没有定义。啊,好吧。。。asp.net中的ID=javascript中的ClientID。谢谢,这很有帮助。:)嗯,不太。。。Javascript作为一种独立语言,并不知道ClientID。ClientID术语仅在asp.net中使用。问题是,在asp.net中,不能将ClientID设置为控件,而必须设置ID值。这反过来将使asp.net框架生成一个适当的ClientID,然后您可以从javascript中引用它。。。asp.net中的ID=javascript中的ClientID。谢谢,这很有帮助。:)嗯,不太。。。Javascript作为一种独立语言,并不知道ClientID。ClientID术语仅在asp.net中使用。问题是,在asp.net中,不能将ClientID设置为控件,而必须设置ID值。这反过来将使asp.net框架生成一个适当的ClientID,然后您可以从javascript中引用它。。。asp.net中的ID=javascript中的ClientID。谢谢,这很有帮助。:)嗯,不太。。。Javascript作为一种独立语言,并不知道ClientID。ClientID术语仅在asp.net中使用。问题是,在asp.net中,不能将ClientID设置为控件,而必须设置ID值。这反过来将使asp.net框架生成一个适当的ClientID,然后您可以从javascript中引用它。。。asp.net中的ID=javascript中的ClientID。谢谢,这很有帮助。:)嗯,不太。。。Javascript作为一种独立语言,并不知道ClientID。ClientID术语仅在asp.net中使用。问题是,在asp.net中,不能将ClientID设置为控件,而必须设置ID值。这反过来将使asp.net框架生成一个适当的ClientID,然后您可以从javascript中引用它。