Button_Click без PostBack - PullRequest
       14

Button_Click без PostBack

1 голос
/ 09 сентября 2011

В приведенном ниже коде при нажатии кнопки значение текстового поля добавляется в базу данных, и то же самое отображается в 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 ]

2 голосов
/ 09 сентября 2011

Быстрый и грязный способ - использовать панель обновления.Конечным пользователям может показаться, что это происходит без обратной передачи, и вам нужно всего лишь внести незначительные изменения в вашу страницу.

Дополнительная информация: Введение в элемент управления UpdatePanel (MSDN)

1 голос
/ 09 сентября 2011

Коротко: JavaScript, JQuery, AJAX

Вы должны использовать один из них, чтобы преуспеть в этом; потому что любая кнопка на странице asp.net, если она работает на сервере, уже отправит postBack.

UpdatePanel является компонентом AJAX, вы можете использовать его, чтобы ваша кнопка не отправляла postBack (или на вас это не влияло)

...