2011-06-13 19 views
1

調用asp:Button的OnClick函數我想從Javascript函數調用一些服務器端代碼。從調用.click()

我有這個按鈕:

document.getElementById("quickAdd").click(); 

和:

<asp:Button ID="quickAdd" runat="server" text = "Quick add" OnClick="QuickAdd" /> 

如果我點擊它,C#的功能快速添加預期

我有一個JavaScript函數這個命令被稱爲這個函數的執行什麼都不做。沒有錯誤,我假設它只是點擊按鈕,但這不會導致觸發QuickAdd C#函數觸發所需的事件。

我該如何解決這個問題?

+0

的可能重複[是否有可能觸發鏈路(或任何元素的),通過JavaScript單擊事件?(http://stackoverflow.com/questions/ 143747/IS-IT-可能對觸發一個鏈接或 - 任何元素單擊事件貫通javascr) – jcolebrand 2011-06-13 21:53:34

回答

0

你有2種方式。

  • 你可以忘記的快速添加服務器事件和使Ajax調用see here how can this be done
  • 可以使用ASP.NET AJAX調用執行後,只需將鼠標懸停在鏈接和看到將要執行的JavaScript,請複製並使用該方法.click()
1

代替

的document.getElementById ( 「快速添加」)點擊()。

使用

的document.getElementById( '<%= quickAdd.ClientID%>')點擊();

其中quickAdd實際上是您的按鈕變量的代碼名稱。這只是因爲你將無法引用該HTML項目,因爲在運行時ID會因runat =「server」而改變 - 所以這只是部分回答

0

.click()在Javascript中不是本地的在jQuery中)。所以,當你調用.click()時,沒有任何事情會發生,因爲.click()沒有被指定。

如果你想獲得的onclick方法爲對象,使用下面的代碼:

var func = document.getElementById("quickAdd").onclick; 

在這一點上,FUNC是你#quickAdd元素的onclick功能。所以,在這一點上,你可以撥打:

func(); 

document.getElementById("quickAdd").onclick(); 

無論是那些將獲得和執行你的onclick事件。

如果這不起作用,請在Firefox中拉起您的頁面,並使用Firebug控制檯執行您的JavaScript(Firebug是一個Firefox插件,您可以安裝它,並且可以訪問該插件)。

0
$(document).ready(function() { 

     $('#btnCancel').click(function (e) { 
      e.preventDefault(); 

      $("<div><span><b>Are you sure you want to cancel this order?</b></span></div>").dialog({ 
       modal: true, 
       draggable: false, 
       resizable: false, 
       width: 430, 
       height: 150, 
       buttons: { 
        "No": function() { 
         $(this).dialog("destroy"); 

        }, 
        "Yes": function() { 
         $("#btnCancel").unbind(); 
         $(this).dialog("destroy"); 
         document.getElementById('<%= btnCancel.ClientID %>').click(); 

        } 
       } 
      }); 
     }); 

    }); 
在身體

然後

<asp:button id="btnCancel" runat="server" cssclass="button_major" text="Cancel" style="float: right" 
        onclick="btnCancel_ClickEvent" clientidmode="Static" />