2013-03-15 65 views
1

在我的一個asp.net項目中,我有兩個asp文本框應該在服務器上運行並更新一些值(在aspx.vb中會進行一些計算)。還有一個輸入類型(html按鈕)的提交按鈕,點擊後會調用一個javascript(在.aspx頁面中)。避免在文本框的autopostback後在asp.net中點擊兩次按鈕

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack=true Width="38px"></asp:TextBox> 

<asp:TextBox ID="TextBox2" runat="server" AutoPostBack=true Width="33px"></asp:TextBox> 

    <input type="button" id="22" value="Draw graph" OnClick="surface.plot1();" /> 
    &nbsp;<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

現在的問題是,如果我在TextBox1TextBox2輸入一些值,並直接點擊按鈕,然後surface.plot1();不要求第一time.so我需要再次點擊此按鈕,獲得surface.plot1();解僱。我知道這是因爲我已經在TextBox2中輸入了值,然後直接點擊了按鈕,所以AutoPostBack在第一次點擊按鈕時完成,當第二次按鈕被點擊時,實際函數被調用?所以如何避免這種情況所以在第一次點擊按鈕本身surface.plot1();被稱爲?或者有沒有其他辦法可以實現這一目標? (但TextBox2 autopost迴應該工作,否則一切都會出錯)。

+0

通過「更新一些值(在aspx.vb中會發生一些計算)」。你的意思是你想在用戶改變這些文本框中的某些內容時做一些計算? – 2013-03-15 12:25:10

+0

@PM。對,就是這樣。如果這些計算可以在surface.plot1();(button onclick event) – 2013-03-15 12:27:36

回答

0

如果您可以在surface.plot1()之前的任何時間進行這些計算,那麼您可以將您的按鈕更改爲服務器端,並在點擊時,在Click功能中進行計算,一旦完成計算,請從代碼中調用javascript函數surface.plot1(),如Here所述。 還記得從文本框中刪除AutoPostBack =「true」。

+0

之前的任何時候發生,但是我的javascript函數就像Surface.prototype.plot1 = function(x,y,z){// code goes here // // }所以我怎麼能從後面的代碼(aspx.vb)調用它如果我從aspx頁面調用它,然後surface.plo1()的作品,但如何從代碼後面調用? (它不像其他函數ex:function abc()) – 2013-03-15 12:37:54

+0

從vb.net代碼調用JavaScript函數的過程被解釋[Here](http://stackoverflow.com/questions/9235017/asp-net-vb-call -javascript-function-from-code-behind) – 2013-03-15 12:41:13

+0

plz查看我的最新評論。我已經編輯過,而你爲我回復 – 2013-03-15 12:43:15

相關問題