0
我現在的問題有點複雜,請耐心等待。我有2個按鈕控件。在頁面加載中,我想知道按鈕在頁面加載時創建了一個回傳。通過研究,我在下面找到了這個片段,它按預期工作。所以這裏是我點擊按鈕時發生的事件情景。ASP按鈕控制開火
1. Click the button does a postback
2. Runs the function below and tell me the id of the button
3. Runs the clicked event handlers for that button
Protected Sub btnCalc_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCalc.Click
' Do this
End Sub
的問題出現時,我點擊第二個按鈕,它步驟1和2,但從來不3.通過測試,我有它只做1,2和3的第一個按鈕點擊。我不知道爲什麼會發生這種情況?
Function GetPostBackControlName() As String
Dim control As Control = Nothing
Dim ctrlname As String = Page.Request.Params("__EVENTTARGET")
If ctrlname <> Nothing AndAlso ctrlname <> [String].Empty Then
control = Page.FindControl(ctrlname)
Else
Dim ctrlStr As String = [String].Empty
Dim c As Control = Nothing
For Each ctl As String In Page.Request.Form
c = Page.FindControl(ctl)
If TypeOf c Is System.Web.UI.WebControls.Button Then
control = c
Exit For
End If
Next
End If
Try
Return control.ID.ToString
Catch
Return ""
End Try
End Function
您是否嘗試過分配單獨的Click事件處理程序?這樣你就知道按鈕被點擊了。 – Ulises 2012-04-20 15:50:52
目前還不清楚問題是什麼,該段似乎到處都是。另外,這對try/catch塊來說是非常糟糕的用法。你應該明確地檢查預期條件,不要依賴於異常,只是忽略異常。 Try/catch不適用於控制流。 – David 2012-04-20 15:50:55
我希望這個更好的解釋可以幫助你理解我的問題david – Will 2012-04-20 16:10:30