2014-10-05 211 views
1

我想從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但我沒有完全得到這個。

回答

1

您應該設置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(); 
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" /> 
寫相同的ID