2010-04-05 73 views
0

我有一種情況,我需要忽略部分頁面加載子內isPostback = true。基本上的IsPostBack裏面我想要的東西一樣,如果Button1的回傳造成不....這否則這樣做...VB.NET if button1導致回發

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    If IsPostBack = True Then 

     If TextBox1.Text <> String.Empty Then 

      CheckDate() 
     End If 

    End If 


End Sub 
+0

那麼,你的問題是什麼? – 2010-04-05 13:34:06

+0

對不起,我的問題是有沒有辦法繞過page_load子時點擊一個按鈕? – iamjonesy 2010-04-05 13:55:25

回答

1

我認爲你需要的是觸發回發的控件名稱的引用。

http://geekswithblogs.net/mahesh/archive/2006/06/27/83264.aspx

實現是有在上面的鏈接的解決方案(從這裏得到它.... How to Get Source of postback

如果控制名字是你的按鈕,然後不要做需要做的事情在回發之後。

HTH

+0

嘿謝謝你,代碼看起來不錯,但是當我將它轉換爲VB.NET時出現錯誤。 如果(typeof運算c是(typeof運算(System.Web.UI.WebControls.Button OrElse運算c)是System.Web.UI.WebControls.ImageButton)))然後 控制= C 退出對於 結束如果 錯誤是「預期類型」,並且在第一個「is」之後。請幫忙! – iamjonesy 2010-04-05 14:18:28

+0

試試這個:If TypeOF c IS Button or TypeOF c is ImageButton then control = c end if if – Raja 2010-04-05 14:31:32

+0

brialliant,非常感謝Raja !! – iamjonesy 2010-04-05 14:33:31

1

你或許應該不會有這一切事情的Page_Load事件中。相反,您應該處理可能導致回發的每個控件的事件。這有助於代碼清晰,易於維護,更不用說更好的控制。

這裏是一個不錯的簡短博客條目我關於這個問題的發現:http://www.sitepoint.com/blogs/2007/01/21/page_load-is-evil/

順便說一句,處理事件是在ASP.NET比在其他環境非常不同,我的猜測,正是基於這樣的事實,你想在Page_Load事件中實現這一點是因爲你還沒有「獲得」事件驅動的編程模型。 (如果我錯了,我很抱歉,我不是故意侮辱)。

但是,如果我是對的,但一旦你習慣了它,對於你來說這比在經典的ASP日子裏要簡單得多,例如,你必須做一些事情,比如試圖點擊哪個按鈕。這裏有另外一篇不錯的文章來解釋這一點:http://articles.sitepoint.com/article/driven-asp-net-development-c

+0

感謝您的鏈接。我得到了事件驅動模型。問題是,當我點擊一個提交按鈕時,page_load會被我所喜歡或不喜歡的觸發。目前我使用page_load時,通過一些javascript從ajax日曆中選擇日期。我只想在點擊提交按鈕時不觸發page_load。我沒有使用page_load做其他事情 – iamjonesy 2010-04-05 13:54:21

1

很難看到這是一個好主意。從您張貼的短片段看,您真正需要的是附加到您的文本框的驗證控件。

+0

+1。男人,這很明顯。爲什麼我沒有看到? – David 2010-04-05 13:49:25

+0

我的表單有一個附加到文本框的日曆控件。當從日曆中選擇一個日期時,一些javascript提交頁面。當page_load被命中時,它會檢查文本框是否爲空。如果不是,則檢查該日期是否已存在條目。所以我不確定驗證控件可以在這裏工作 – iamjonesy 2010-04-05 13:59:53

+0

@Jonesy您可以將驗證程序附加到日曆,或者您可以添加javacript以使日曆填充文本框_before_提交頁面。事實上,我懷疑你可以在這裏使用javascript來完全跳過這個回發,只要你能做到這一點,這是一件好事。 – 2010-04-05 15:12:26

0

看看發佈的項目。你應該在那裏看到對那個按鈕的某種引用。 IIRC,如果點擊它,你會在那裏看到某種參考,如果不是,它不會在那裏。 我在前一段時間遇到了同樣的問題,這就是我如何繞過加載一些東西。

+0

對不起,但我如何查看發佈的項目? – iamjonesy 2010-04-05 14:24:07