私の下のコードでは、ボタンがクリックされたときにテキストボックスの値がデータベースに追加され、DataBinderに同じものが表示され、ページが再読み込みされます。まあ、チャットスクリプトと同じように、私はポストバックなしで全プロセスを完了する必要があります。したがって、ページをリロードすることなく、テキストボックスからDataBinderに値を渡す方法。すなわち、ポストバックしないようにボタンをクリックする方法。Button_Click PostBack
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();
}
さてあなたのボタンは、ポストバックを送信しないように、あなたは、それを使用することができます(または、あなたが行われていない)、AJAXコンポーネントです。私はテキストを入力した後にボタンをクリックする必要があります右のテキストボックスですか? – Mal
正しい。実際には、更新パネルはポストバックを実行しますが、それは非同期であるかのようにちょっとしたトリッキーを使います。これは、まるで完全なポストバックを実行していて、.netフレームワークが残りの部分を処理しているかのように正確にコーディングできることを意味します。 UpdatePanelの中にボタンを置くだけで完了します。全体のプロセスは5分以内に行かなければなりません。 –
アリソンはすべて正常に動作しています。しかし、 ' ContentTemplate> asp:UpdatePanel>の中に' TextBox'を置くと、 'TextBox 'でもタイマーのせいで起動してしまい、テキストを追加できません。私が 'TextBox'を外に置くと、その値をクリアすることができません。私は別の質問を投稿してくださいここでそれをお読みくださいhttp://stackoverflow.com/q/7355210/903455 – Mal