asp.net設定預設按鈕的一種方法(041217更新)

來源:互聯網
上載者:User

041217對DefaultButton.js做了一點必要的更改。

由於asp.net裡面的button都是submit類型的,所以在表單內按斷行符號都是觸發的第一個按鈕的click事件,如果有多個button則無法在斷行符號的時候觸發後面的按鈕事件。以下方案可通過設定來改變頁面的預設按鈕。

1.在基頁面內的load事件裡加入supportDefaultButton()

2.基頁面中聲明變數:

Protected DefaultButton As Button

3.在基頁面中加入函數supportDefaultButton並重載RaisePostBackEvent

    Private Sub supportDefaultButton()Sub supportDefaultButton()

        GetPostBackEventReference(New System.Web.UI.Control)

        RegisterStartupScript("DefaultButton", "<script language='javascript' src='/js/DefaultButton.js'></script>")

    End Sub


    Protected Overloads Overrides Sub RaisePostBackEvent()Sub RaisePostBackEvent(ByVal sourceControl As System.Web.UI.IPostBackEventHandler, ByVal eventArgument As String)

        If (DefaultButton Is Nothing OrElse Request("__EVENTTARGET") <> "") Then

            MyBase.RaisePostBackEvent(sourceControl, eventArgument)

        ElseIf (Not DefaultButton Is Nothing) Then

            MyBase.RaisePostBackEvent(DirectCast(DefaultButton, System.Web.UI.IPostBackEventHandler), Nothing)

        End If

    End Sub

4.DefaultButton.js檔案內容:
for(i=0;i<Form1.elements.length;i++)

{

    if(Form1.elements[i].type == "submit")

    {

        fstsubmit = Form1.elements[i]

        fstsubmit.attachEvent("onmouseup", changeEvent)

        //break; 這一句應該去掉

    }

}

function changeEvent()

{

    __doPostBack(event.srcElement.id, '')

}

在繼承頁面的load事件裡:

5.DefaultButton = 需要設定為預設按鈕的對象名稱

即可。

IE6裡面測試通過,低版本沒有測試,但應該沒問題。有興趣的朋友可以幫忙測試一下相容性,順便告知。要是有更好的辦法,也請給個連結看看。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.