我试图从JS调用C#函数。我不能用ajax。我试图创建一个ASP.NET按钮,当它单击它调用C#函数并从JS调用click函数时:
在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的click事件无法正常工作。我试图在JS代码的第一行之后写一个警报来查看代码是否丰富到该行,但我只能看到"After CLICK"
。
我已经看到了这个答案:Button's .click() command not working in Chrome但我没有完全理解这一点。
答案 0 :(得分:1)
您应该将ClientIDMode
设置为Static
<asp:Button runat="server" ID="UploadButton" ClientIDMode="Static" OnClick="Upload_Click" />
否则,它会有一些由ASP.NET生成的随机id,将CLientIDMode设置为Static,你要说ASP.NET不要干涉你的id并保持它们完整。
其他选项是使用ClientID
属性,该属性具有自动生成的id的值,如
document.getElementById('<%= UploadButton.ClientID %>').click();
答案 1 :(得分:0)
试试这个
在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" />