2012-04-09 35 views
0

我有一個形式與動作=「xyz.aspx:type = new」和一些輸入文本框和2個按鈕:提交和預覽。 「提交」按鈕用文本框值更新數據庫,「預覽」按鈕將表單文本框的值傳送到頁面「xyz.aspx?type = preview」。問題在於功能被實現了,但是在點擊預覽按鈕之後,表單的動作URL開始起作用並導致數據庫中不需要的更新。那麼如何防止這種情況發生?任何幫助表示讚賞。如何防止窗體的動作發生在asp.net

+0

你可以添加一些關於你的page_load發生了什麼的代碼示例嗎? – hofnarwillie 2012-04-09 18:30:14

回答

1

如果您的兩個按鈕不是asp:按鈕,請先執行此操作。現在

<asp:Button Id="Submit" runat="server" OnClick="Submit_OnClick"/> 
<asp:Button Id="Preview" runat="server" OnClick="Preview_OnClick"/> 

,移動你的代碼更新數據庫到Submit_OnClick

protected void btnExecute_Click(object sender, EventArgs e) 
{ 
    //update your database 
} 

你的數據庫應該只有當提交點擊更新。

如果您需要預覽按鈕發佈到另一個頁面,請使用PostBackUrl屬性。

+0

謝謝!但是我點擊「提交和預覽」按鈕後會顯示一個公共頁面。唯一的缺點是在提交之後,它將填充來自dbase的值和來自querystring的預覽。但爲什麼表單操作在預覽之後被觸發。預覽點擊代碼只包含重定向網址。 – 2012-04-09 18:39:57

+0

如果在頁面加載事件中有代碼,它將觸發任何導致回發的控件。我們需要查看您的代碼才能瞭解更多信息。 – SouthShoreAK 2012-04-09 18:46:52