没有PostBack的Button_Click

时间:2011-09-08 21:12:50

标签: asp.net postback

在下面的代码中,当单击按钮时,文本框值将被添加到数据库中,并且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();
    }

2 个答案:

答案 0 :(得分:2)

快速而肮脏的方法是使用更新面板。您的最终用户可能会在没有回发的情况下发生,您只需要对您的网页进行细微更改。

更多信息:Introduction to the UpdatePanel control(MSDN)

答案 1 :(得分:1)

很快:JavaScript,JQuery,AJAX

你必须使用其中之一,才能成功;因为asp.net页面上的任何按钮如果在服务器上运行,都会发送postBack。

UpdatePanel是一个AJAX组件,你可以使用它,这样你的按钮就不会发送postBack(或者你没有受到影响)