在我下面的代碼中,當點擊按鈕時,文本框的值被添加到數據庫中,並且DataBinder中顯示的值也在重新加載頁面。那麼,就像聊天腳本一樣,我需要完成整個過程而無需回傳。因此,如何在不重新加載頁面的情況下將文本框中的值傳遞給DataBinder。即如何執行按鈕單擊,以便它不回發。Button_Click無回傳
protected void Page_Load(object sender, EventArgs e)
{
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=repeater;" + "UID=root;" + "PASSWORD=****;" + "OPTION=3";
OdbcConnection MyConnection = new OdbcConnection(MyConString);
try
{
MyConnection.Open();
OdbcCommand cmd = new OdbcCommand("Select message from table1", MyConnection);
OdbcDataReader dr = cmd.ExecuteReader();
ArrayList values = new ArrayList();
while (dr.Read())
{
if (!IsPostBack)
{
string ep = dr[0].ToString();
values.Add(new PositionData(ep));
Shout_Box.DataSource = values;
Shout_Box.DataBind();
}
}
}
catch
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=repeater;" + "UID=root;" + "PASSWORD=*****;" + "OPTION=3";
OdbcConnection MyConnection = new OdbcConnection(MyConString);
OdbcCommand cmd = new OdbcCommand("INSERT INTO table1(message)VALUES(?)", MyConnection);
cmd.Parameters.Add("@email", OdbcType.VarChar, 255).Value = TextBox1.Text;
MyConnection.Open();
cmd.ExecuteNonQuery();
MyConnection.Close();
}
好,但即使我使用更新面板。輸入文本後我應該點擊按鈕是文本框嗎? – Mal
正確。實際上,更新面板執行回發,但它使用一些欺騙手段來顯示,如果它是異步的。這意味着您可以完全編寫代碼,就好像您正在執行完整的回發並且.net框架將爲您處理其餘部分。只需將您的按鈕放入UpdatePanel中即可完成。整個過程應該不到5分鐘。 –
艾莉森一切工作正常。但是,當我把'TextBox'放在' ContentTemplate> asp:UpdatePanel>'甚至'TextBox'中時,由於計時器而觸發,我無法添加任何文本。如果我把'TextBox'放在外面,我無法清除它的值。我發佈單獨的問題,請在這裏閱讀http://stackoverflow.com/q/7355210/903455 – Mal