Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.Net按钮在javascript中没有ID?_C#_Javascript_Asp.net 4.0 - Fatal编程技术网

C# Asp.Net按钮在javascript中没有ID?

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

在javascript中识别asp.net控件时遇到一些问题。这是我的代码的一个简单变体,也许你可以看到一个错误

此函数创建一组按钮+标签,可多次调用:

    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);


check
sender.getAttribute(“id”)
@RandRandom alert(sender.clientid)返回以可预测方式创建客户端id的“未定义”需求。Check clientid拼写正确:)Check
sender.getAttribute(“id”)
@RandRandom alert(sender.clientid)返回“未定义”的需要,以可预测的方式创建客户端id。Check clientid拼写正确:)Check
sender.getAttribute(“id”)
@RandRandom alert(sender.clientid)返回“未定义”的需要,以可预测的方式创建客户端id。Check clientid拼写正确:)Check
sender.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中引用它。