asp.net按钮 - JS点击不起作用

问题描述:

我想从JS调用C#函数。我不能使用ajax。我试图从JS创建ASP.NET按钮时,点击它,它调用C#函数并调用点击功能:asp.net按钮 - JS点击不起作用

在HTML:

<asp:Button runat="server" ID="UploadButton" OnClick="Upload_Click" /> 

JS:

alert("Before CLICK"); 
document.getElementById("UploadButton").click(); 
alert("After CLICK"); 

ASP .NET:

protected void Upload_Click(object sender, EventArgs e) 
{ 
    //CODE 
} 

问题是,从JS单击事件不起作用。我试图在JS代码的第一行之后写一个警告,看看代码是否丰富,但我只能看到"After CLICK"

我已经看到这个答案:Button's .click() command not working in Chrome但我没有完全得到这个。

您应该设置ClientIDModeStatic

<asp:Button runat="server" ID="UploadButton" ClientIDMode="Static" OnClick="Upload_Click" /> 

否则,会有一些随机化ID,由ASP.NET生成,设置的ClientIDMode为静态,你说ASP.NET不要搞弄你的ID并保持完好。

另一个选项是使用ClientID财产将有自动生成的ID的类似

document.getElementById('<%= UploadButton.ClientID %>').click(); 

值试试这个

在ASP.net在页面呈现它会改变它的财产以后像'containerName...YourButtonName' 因此使用ClientID您将获得Button的实际ID。

document.getElementById('#<%= UploadButton.ClientID %>').click(); 

或者您可以使用ClientIDMode="Static"将呈现你在你的.aspx

<asp:Button runat="server" ID="UploadButton" 
ClientIDMode="Static" OnClick="Upload_Click" /> 
写相同的ID