2013-10-11 36 views
0

我的ASP.NET項目中的Web窗體上有一些按鈕。最終用戶必須像使用計算器一樣與這些按鈕進行交互。我的問題是,有史以來最終用戶點擊一個按鈕,由於回發頁面刷新。我試圖像這樣打開回發:ASP.NET中的對象回發問題C#

if (!Page.IsPostBack) 
{ 
    protected void btn7_Click(object sender, EventArgs e) 
    {      
     const string stringNumber7 = "7"; 
     var text = txtNumber.Text; 
     text += stringNumber7; 
     txtNumber.Text = text; 
     CheckMaxLength(); 
    } 
} 

但是然後點擊事件不會觸發。我曾嘗試使用圖像,圖像按鈕,圖像映射。我無法從這些對象中得到我想要的結果。我希望能夠停止回發,但仍然有我的按鈕點擊事件在Windows應用程序中啓動。我看到一些論壇使用更新面板進行交談。我不確定如何正確實施更新面板。我不熟悉AJAX控件。

有誰知道我可以如何完成想要使用更新面板?或者如何停止回發並仍然啓動服務器端代碼?

+0

回傳意味着客戶端回發到服務器,所以如果你要處理的服務器,你上一個按鈕單擊事件必須這樣。如果您想使用javascript處理客戶端上的點擊事件,請使用html-input type =按鈕並處理它的onclick事件。 –

+0

如果你不想回發,你可以使用JavaScript或jQuery。 – Alexan

+1

我認爲你有一個基本的誤解......服務器端代碼可以通過單擊按鈕後調用的唯一方法是通過回發。這是根本。如果你想保留屏幕上的值,你需要把它們放在一個保持狀態的控件中,或者(如果沒有),你需要重建那些服務器端。 – andleer

回答

0

如果botton正在調用本地/客戶端JavaScript,請在​​控件事件屬性中返回false以取消回發。

<button onclick="MyMethod();return false;">Click Me</button> 
如果您使用的是服務器端控制的

<asp:button runat="server" OnClientClick="MyMethod();return false;" /> 
+0

「MyMethod()」必須是單獨的方法,還是可以使用按鈕的單擊事件? – nate

+0

如果您是通過點擊按鈕來調用JavaScript,那麼您不會從描述中清楚說明。你說這個按鈕正在導致一個PostBack ...你想要它運行什麼代碼?如果該代碼是客戶端,則需要通過返回false來取消回發。如果該代碼是服務器端,則只能通過回發獲得。你的按鈕需要一些調用代碼的方法,如果它是客戶端。你可以使用onclick屬性來做到這一點,或者使用諸如jQuery之類的庫來連接點擊事件。 – andleer

+0

我更新了我的問題,對於混淆感到抱歉。 – nate