- - PR -
GridViewグリッドの再表示について教えて下さい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-30 11:16
いつもお世話になっている未熟者といいます。
現在 VS2005 c#、SQL server2005にて開発をしています。 APPADPという名前のSqlDataSourceを指定したGridViewグリッド(GridView1) にテーブル(worktbl)データを表示していて(GridView1には テーブル項目以外にテンプレート列でチェックボックスを追加してあります) 確定ボタンをクリックするとチェックボックスにチェックされた行に対し ストアドプロシージャでチェックされた行を削除しているのですが、更新後 のテーブルデータをGridViewグリッドに反映したいのですが、SqlDataSourceに 対してdatabindを実行しても反映されません。 超初歩的な質問で申し訳ないのですが、ご指導の方宜しくお願いします。 画面イメージはこんな感じです。 ------------------------------------ 承認 社員No 社員名 □ 999999 xxxxxxxxx □ 111111 xxxxxxxxx □ 222222 xxxxxxxxx -------- | 確定 | -------- ----- ボタンのイベントです。 protected void kakuteiBtn_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(appds.ConnectionString ); SqlCommand cmmd = new SqlCommand(); conn.Open(); cmmd.Connection = conn; cmmd.CommandType = CommandType.StoredProcedure; cmmd.CommandText = "syainedt"; cmmd.Parameters.Add("@syainId", SqlDbType.Int); for (cnt1 = 0; cnt1 < GridView1.Rows.Count; cnt1++) { GridViewRow selectrow = GridView1.Rows[cnt1]; if (((CheckBox)selectrow.Cells[0].Controls[1]).Checked) { cmmd.Parameters["@syainID"].Value = selectrow.Cells[1].Text; cmmd.ExecuteNonQuery(); } } this.appds.DataBind(); } | ||||
|
投稿日時: 2006-03-31 06:41
ExecuteNonQueryが実行されているか確認してみたらどうでしょうか。 if (((CheckBox)selectrow.Cells[0].Controls[1]).Checked) { cmmd.Parameters["@syainID"].Value = selectrow.Cells[1].Text; cmmd.ExecuteNonQuery(); } _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2006-03-31 09:16
Accessさん ありがとうございます。
ExecuteNonQueryの実行後のテーブルレコードを確認したところ、 チェックボックスにチェックを入れたテーブルレコードは正常に削除されていました。 一度、画面をメニューに戻してから再度、この画面を表示した場合は 削除したレコードは表示されません? 何かヒントがあれば宜しくお願いします。 | ||||
|
投稿日時: 2006-03-31 09:46
GridView に対して再バインドする必要があるのではないでしょうか? GridView ということは ASP.NET 2.0 ですよね。 ポストバックはなされているとして、GridView の表示が単に更新していない? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-31 10:26
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29338&forum=7&9
これと同じようなことでしょうか? 外していたら、ごめんなさい。 | ||||
|
投稿日時: 2006-03-31 10:48
じゃんぬねっとさん、田中さん ご指導ありがとうございました。
皆さんのご指摘の通り、GridViewに対してDataBIndを実行した所 更新後データの再表示ができました。 本当にありがとうございました。 | ||||
|
投稿日時: 2006-03-31 10:54
今回は GridView なので DataBind メソッドが使えると思います。 ところで、その ComboBox のスレッド、やっぱりタイミングの問題じゃないですか? null で参照をいったん解放する必要があるように思えないんですよ。 と、続けるなら向こうのスレッドへ移動ですね... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1