2009-06-20 67 views
1

我有一個asp.net表單,它有3個文本框和一個asp.net鏈接按鈕控件。我想調用按鈕單擊事件處理程序方法用戶按enter鍵。我使用asp.net面板和它的默認按鈕property.Its工作在IE.But不在其他瀏覽器如Firefox等。是否有任何其他方法來做到這一點?ASP.NET:在Enter鍵上調用代碼隱藏方法

回答

2

你可以嘗試DefaultButton地產(ASP.Net 2.0及以上)。 ASP.Net窗體和麪板控件都有一個DefaultButton屬性。默認操作意味着回車鍵應該觸發按鈕點擊。

<form id="Form1" defaultbutton="SubmitButton" runat="server"> 
    <asp:panel id="panel1" defaultbutton="anotherbutton" runat="server"> 
    </asp:panel> 
</form> 

有一個已知FireFox的問題,可能通過增加來解決:UseSubmitBehavior="False" 您提交按鈕。這個Blog描述了UpdatePanel中的問題和解決方案,它也可能在這裏工作。

此外,請檢查此question哪些鏈接到其他可能的解決方案。

+0

這會在非IE瀏覽器中工作嗎? 。我嘗試了這一點,並在Firefox中失敗 – Shyju 2009-06-21 01:19:49

3

這似乎是FF3(不知道)的錯誤,而是固定在下面給出 腳本保持它在頁面的結尾,使其覆蓋由ASP.NET提供的WebForm_FireDefaultButton方法。

var __defaultFired = false;

函數WebForm_FireDefaultButton(event,target)var element = event.target || event.srcElement;

if (!__defaultFired && event.keyCode == 13 && !(element && (element.tagName.toLowerCase() == "textarea"))) { 
    var defaultButton; 

    if (__nonMSDOMBrowser) 
     defaultButton = document.getElementById(target); 
    else 
     defaultButton = document.all[target]; 

    if (defaultButton) { 
     if(typeof(defaultButton.click) != "undefined") 
      defaultButton.click(); 
     else 
      eval(unescape(defaultButton.href.replace("javascript:", ""))); 

     event.cancelBubble = true; 

     if (event.stopPropagation) event.stopPropagation(); 
     return false; 
    } 
} 
return true; 

}