在下面的代码中,当单击按钮时,文本框值将被添加到数据库中,并且DataBinder中显示的内容正在重新加载页面。好吧,就像聊天脚本一样,我需要完成整个过程而不需要回发。那么,如何在不重新加载页面的情况下将值从文本框传递到DataBinder。即如何执行按钮单击以使其不回发。
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();
}
答案 0 :(得分:2)
快速而肮脏的方法是使用更新面板。您的最终用户可能会在没有回发的情况下发生,您只需要对您的网页进行细微更改。
更多信息:Introduction to the UpdatePanel control(MSDN)
答案 1 :(得分:1)
很快:JavaScript,JQuery,AJAX
你必须使用其中之一,才能成功;因为asp.net页面上的任何按钮如果在服务器上运行,都会发送postBack。
UpdatePanel是一个AJAX组件,你可以使用它,这样你的按钮就不会发送postBack(或者你没有受到影响)